JUnit和mockito

本文介绍了单元测试的重要性和JUnit作为测试框架的基本使用,包括@Test、@Before、@After等注解的用途。然后详细讲解了Mockito框架,如何通过mock和spy来控制方法调用和验证,以及@Mock和@InjectMocks注解的应用,帮助读者理解如何在测试中实现更好的代码可控性和覆盖率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们都希望写出没bug的代码,那么测试就是必不可少的一个环节。在CI持续集成并发布我们的代码的过程中,有很多测试方法,可以提高我们代码的覆盖率,查缺补漏。

单元测试

单元测试用于测试最小的功能单元,这是各种测试中范围最小的一种。在单元测试中,我们一般会测试一个方法以其为单位,检测是否能返回我们期望的结果。理论上,单元测试应该在内存中进行,被测试的代码在理论上不应该和其他外部信息进行交互,这些外部信息包括:访问网络、访问数据库、读写数据、访问其他线程。

JUnit

除了让整个应用运行起来之外,我们希望有一种比较方便的方式来测试我们的功能,JUnit就是这样的一种框架,设想如果没有单元测试框架,我们用main函数来测试过程实在是复杂而且难以想象。一般的,项目工程都会有一个test文件夹,我们将所有的测试方法都写在这个文件夹下,测试方法的名字是无关的,但是我们一般最好起一个易懂的名字。

使用方法

  • @Test注解:表示当前方法为测试方法,我们可以运行该方法

  • @Before注解:表示当前类中,所有的方法在执行前都会执行被Before注解修饰的方法

  • @After注解:类似于Before,在每个方法执行完后都会执行此方法

  • Assert:测试方法一般返回值都是void,我们用Assert.assertTrue()等方法做断言

  • @Ignore注解:如果测试方法还没完成时,可以用这个注解,让集成的时候忽略此测试方法

  • @Test(expected = Exception.class) : 如果测试后没有抛出期望的异常,则测试失败

mockito

在测试的时候,有时我们要达到一些覆盖率指标,或者即使不是因为覆盖率指标我们也会遇到这种问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值