单元测试 - 注解篇

这篇具有很好参考价值的文章主要介绍了单元测试 - 注解篇。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. @RunWith 指定单测的运行环境

  • @RunWith(JUnit4.class) - JUnit4环境
  • @RunWith(MockitoJUnitRunner.class) - Mock环境
  • @RunWith(SpringJUnit4ClassRunner.class) / @RunWith(SpringRunner.class) - Spring环境  ps: SpringJUnit4ClassRunner 与 SpringRunner区别
    • SpringRunner继承自SpringJUnit4ClassRunner,无额外扩展
    • junit 4.12之前的版本只能用SpringJUnit4ClassRunner, 4.12之后的可以用
    • 未显式指定@RunWith的情况下,Junit使用默认的Runner(JUnit4.4之后 - BlockJunit4ClassRunner,JUnit4.4之前 - Junit4ClassRunner)
  • @RunWith(Suite.class) - 一套测试集合 (未研究

2. @ContextConfiguration  指定spring环境的相关配置,例如扫描路径 / 类等,加载ApplicationContext,启动spring容器,搭配@RunWith(SpringRunner.class)使用

  • @ContextConfiguration(classes = SimpleConfiguration.class)
  • @ContextConfiguration(locations = { "classpath:spring1.xml", "classpath:spring2.xml" }) 

3. @SpringBootTest - 作用同@ContextConfiguration

  • 与@ContextConfiguration区别:无需显示指定locations或classes, @SpringBootTest注解会自动会从当前包开始,逐级向上查找被@SpringBootApplication或@SpringBootConfiguration注解的类
  • 包含了@ExtendWith({SpringExtension.class})注解,使用的@SpringBootTest后无需再指定Spring Runner,即不用再使显式用@RunWith(SpringRunner.class)  / @ExtendWith({SpringExtension.class})
    spring单元测试注解,单元测试,java

4. @ExtendWith - Junit5中的注解,等同于@RunWith

可以在@RunWith基础上进行扩展,利用一个Test及需要Spring环境又需要Mock环境

@RunWith(MockitoJUnitRunner.class)
@ExtendWith(MockitoExtension.class)
public class Test {

}

5. @AutoConfigureMockMvc

等同于mockMvc = MockMvcBuilders.standaloneSetup(xxController).build();

6. @WebMvcTest(xx.class) - 测试Controller

  • 此注解中已经引入了@AutoConfigureMockMvc,也就是说可以注解注入MockMvc
  • 配合@RunWith(SpringRunner.class) ,只会加载在@WebMvcTest注解上指定的class
  • 如果有需要mock的对象,配合@MockBean使用

最简单的单元测试 - 直接在方法上使用@Test注解即可

@Test
public void test() {

}

mock场景

普通方法的mock
1. 编程方式
@Before
public void setUp() throws Exception {
    MockitoAnnotations.openMocks(this);
}
2. 注解方式,在整个测试类上添加注解 @RunWith(MockitoJUnitRunner.class)

3. 在1或2的基础上配合 @InjectMocks、@Mock

mvc的mock,主要为了构造MockMvc 
1. 编程方式
public class Test {
    @Autowired
    MockMvc mockMvc;

    @Before
    public void setup() {
        mockMvc = MockMvcBuilders.standaloneSetup(xxController).build();
    }
}


2. 在整个类上使用注解@AutoConfigureMockMvc
@AutoConfigureMockMvc
public class Test {
    @Autowired
    MockMvc mockMvc;
}
3. 在1或2基础上配合@InjectMocks、@Mock、 @Autowired MockMvc


参考 

SpringBoot Test及注解详解 - codedot - 博客园 (cnblogs.com)文章来源地址https://www.toymoban.com/news/detail-784129.html

到了这里,关于单元测试 - 注解篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Java实用干货】使用@SpringBootTest注解进行单元测试

    【【Java实用干货】使用@SpringBootTest注解进行单元测试 大家好,我是洲洲,欢迎关注,一个爱听周杰伦的程序员。关注公众号【程序员洲洲】即可获得海量学习资料、面试笔记、大厂独家学习体系路线等…还可以加入技术交流群~ @SpringBootTest注解是SpringBoot自1.4.0版本开始引入的

    2024年02月05日
    浏览(47)
  • Day20-【Java SE高级】单元测试 反射 注解 动态代理

    就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。 1. 咱们之前是如何进行单元测试的?有啥问题? 只能在main方法编写测试代码,去调用其他方法进行测试。 无法实现自动化测试,一个方法测试失败,可能影响其他方法的测试。 无法得到测试的报告,需要程

    2024年04月17日
    浏览(51)
  • java语法(二)线程并发、Juit单元测试、反射机制、注解、动态代理、XML解析、JVM

    正则表达式验证网站 1、 ? :表示前边这个字符可以出现0次或者1次。例如下边 /used? 既可以匹配 use 也可以匹配 used 。 2、 * :匹配0个或者多个字符, * 号代表前边这个字符可以出现0次或者多次。例如 /ab*c 可以匹配 ac、abc、abbbbc 3、 + :与 * 号不同的是, + 需要前面这个字符

    2024年02月06日
    浏览(53)
  • [Java学习日记]日志、类加载器、XML、DTD与schema、XML解析、XPath、单元测试、Assert、BeforeAfter、注解、自定义注解、注解案例

    下面的案例中只是做一个简单的了解,不做深入理解啦 目录 一.使用Logback写日志 二.类加载器 三.XML 四.XML编写规定:DTD与schema 五.XML解析 六.XPath 七.单元测试 七.Assert(断言):检验方法结果 八.使用before与after注解备份与还原数据 九.注解 十.自定义注解 十一.注解案例:用注

    2024年02月04日
    浏览(57)
  • 精通Spring Boot单元测试:构建健壮的Java应用

    在当今软件开发领域,单元测试已经成为确保应用质量和可维护性的关键步骤。特别是在Java生态系统中,Spring Boot框架作为一种广泛应用的解决方案,其对于单元测试的支持更是让开发者受益匪浅。本博客的目标是为开发者提供一份清晰易懂的指南,帮助他们利用Spring Boot框

    2024年03月15日
    浏览(62)
  • Day14:单元测试、Junit单元测试框架、反射、注解

    针对最小的功能单元(方法)进行正确性测试 编写正规的单元测试框架 传统的无法执行自动化测试,且无法得到测试报告 Junit的作用: 测试类取名:原类名+Test(大驼峰) 测试方法取名:test+原函数名称(小驼峰) 测试方法:必须public,无参,无返回值 测试方法上面必须加

    2024年04月14日
    浏览(63)
  • 单元测试 - 注解篇

    1. @RunWith 指定单测的运行环境 @RunWith(JUnit4.class) - JUnit4环境 @RunWith(MockitoJUnitRunner.class) - Mock环境 @RunWith(SpringJUnit4ClassRunner.class) / @RunWith(SpringRunner.class) - Spring环境  ps: SpringJUnit4ClassRunner 与 SpringRunner区别 SpringRunner继承自SpringJUnit4ClassRunner,无额外扩展 junit 4.12之前的版本只能用

    2024年02月02日
    浏览(30)
  • 单元测试&反射&注解

             就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试。             可以用来对方法进行测试,它是由Junit公司开源出来的            反射就是:加载类,并允许以编程的方式解剖类中的各种成分(成员变量、方法、构造器等)。             

    2024年02月07日
    浏览(39)
  • SpringBoot单元测试之常见框架和注解

    在软件开发中提及\\\"mock\\\",通常理解为模拟对象。它可以用来对系统、组件或类进行隔离。在测试过程中,我们通常关注测试对象本身的功能和行为,而对测试对象涉及的一些依赖,仅仅关注它们与测试对象之间的交互(比如是否调用、何时调用、调用的参数、调用的次数和顺

    2024年02月05日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包