@RunWith注解的使用及说明

 更新时间:2025年09月26日 10:48:09   作者:chinusyan  
@RunWith注解用于指定测试运行器,SpringRunner(需JUnit4.12+)和SpringJUnit4ClassRunner(旧版)可集成Spring环境,@ContextConfiguration配合加载配置并自动注入Bean,简化测试配置

@RunWith注解的作用

  • @RunWith就是一个运行器
  • @RunWith(JUnit4.class)就是指用JUnit4来运行
  • @RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环境
  • @RunWith(Suite.class)的话就是一套测试集合,

在使用 spring-test 的过程中,有两个 runner 可以选择,分别是 SpringRunner 和 SpringJUnit4ClassRunner。

如果是在 4.3 之前,只能选择 SpringJUnit4ClassRunner,如果是 4.3 之后,建议选择 SpringRunner。

SpringRunner 对 junit 的版本有要求,需要 4.12 及以上。

@RunWith(SpringJUnit4ClassRunner.class)使用了Spring的SpringJUnit4ClassRunner,以便在测试开始的时候自动创建Spring的应用上下文。

其他的想创建spring容器的话,就得在web.xml配置classloder。

注解了@RunWith就可以直接使用spring容器,直接使用@Test注解,不用启动spring容器

@ContextConfiguration

@ContextConfiguration这个注解通常与@RunWith(SpringJUnit4ClassRunner.class)联合使用用来测试

当一个类添加了注解@Component,那么他就自动变成了一个bean,就不需要再Spring配置文件中显示的配置了。

把这些bean收集起来通常有两种方式,Java的方式和XML的方式。

当这些bean收集起来之后,当我们想要在某个测试类使用@Autowired注解来引入这些收集起来的bean时,只需要给这个测试类添加@ContextConfiguration注解来标注我们想要导入这个测试类的某些bean。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath*:/*.xml"})
public class CDPlayerTest {

}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • IDEA提示 add *** to custom tags问题及解决

    IDEA提示 add *** to custom tags问题及解决

    文章介绍了如何在文档注释中添加自定义注解(@xxx),并提供了添加和删除注解的方法,总结了个人经验,希望对大家有所帮助
    2024-12-12
  • Java语言Consistent Hash算法学习笔记(代码示例)

    Java语言Consistent Hash算法学习笔记(代码示例)

    这篇文章主要介绍了Java语言Consistent Hash算法学习笔记(代码示例),分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Shiro+SpringBoot时,anon配置的匿名路径被拦截,自定义配置类走过的坑及解决

    Shiro+SpringBoot时,anon配置的匿名路径被拦截,自定义配置类走过的坑及解决

    文章主要讲述了在Java配置类中使用`@Configuration`注解的重要性,并通过修改Shiro配置时遇到的问题,强调了使用`LinkedHashMap`而不是`HashMap`的原因,同时,文章还提供了一些面试题和总结,帮助读者更好地理解和应用这些知识
    2026-03-03
  • SpringBoot中的异步执行方法详解

    SpringBoot中的异步执行方法详解

    这篇文章主要介绍了SpringBoot中的异步执行方法详解,ThreadpoolTaskExecutor不需要手动的创建当前线程池,但往往我们还是会手动指定,具体原因看源码就可以自有判断,需要的朋友可以参考下
    2023-10-10
  • 最大子数组和Java实现代码示例

    最大子数组和Java实现代码示例

    这篇文章主要介绍了最大子数组和Java实现的相关资料,文中介绍了两种方法来解决寻找具有最大和的连续子数组的问题,第一种方法是动态规划,第二种方法是分治法,需要的朋友可以参考下
    2024-11-11
  • Spring sentinel哨兵模式相关原理解析

    Spring sentinel哨兵模式相关原理解析

    这篇文章主要介绍了Spring sentinel哨兵模式相关原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • 解决JSTL foEach标签 刷新报错的方法

    解决JSTL foEach标签 刷新报错的方法

    本篇文章是对JSTL foEach标签刷新报错的方法进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • 解决IDEA插件市场Plugins无法加载的问题

    解决IDEA插件市场Plugins无法加载的问题

    这篇文章主要介绍了解决IDEA插件市场Plugins无法加载的问题,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • Java中线程Thread的特点及使用

    Java中线程Thread的特点及使用

    这篇文章主要介绍了Java中线程的特点及使用,线程是进程的组成部分,一个进程可以拥有多个线程,而一个线程必须拥有一个父进程,那么线程该如何使用,让我们一起来看看吧
    2023-04-04
  • Java中反射的应用

    Java中反射的应用

    这篇文章主要介绍了Java中反射的应用,通过反射,我们可以在运行时检查类的属性、方法和构造函数,并且可以在不知道类名的情况下创建对象、调用方法和访问属性,需要的朋友可以参考下
    2023-10-10

最新评论