Why
单元测试帮我们快速验证代码流程(超快速得到代码结果),更早了解程序的问题(发现代码bug如隐藏的空指针等),让我们能了解需求(测试用例覆盖所有逻辑链路),利于提高代码能力。
What
常用单元测试框以及常用用法
junit
- 常用注解:
@RunWith:制定测试运行容器
@BeforeClass(测试类启动时执行一次)
@AfterClass(测试类销毁时执行一次)
@Test 方法注解,测试用例
@Before 方法注解,测试方法执行前执行,常用作配置或创建对象
@After 方法注解,测试方法执行后执行,常用于资源清理关闭等
@IgnoreTest 忽略测试用例
@Rule 不影响原有case的代码,减少了特有操作和test case原逻辑的耦合 - Assertions断言:(或者可使用AssertJ断言库有更多断言方法)
assertEquals:比较值
assertArrayEquals:比较数组或list的值是否相同
assertTrue/AssertFalse:判断条件真假()
assertNull/assertNotNull:验证对象是否为空或不为空
assertSame/assertNotNull:判断是否同一引用(==)
fail:强制不通过
assertThat(actual, matcher):按照匹配符规则验证
matcher匹配符- 一般对象匹配符:
allOf:所有条件都成立才通过,相当于&&
eg:assertThat(testNumb,allOf(greaterThan(8),lessThan(16));
anyOf:所有条件只要有一个成立,相当于||
anything:无论什么条件,
- 一般对象匹配符: