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:无论什么条件,永远为true
is:待测的object等于后面给出的object
not:前面待测的object不等于后面给出的object - 字符串匹配符:
containsString:待测字符串包含 子字符串
endsWith/startsWith:待测字符串以子字串结尾/开头
equalTo:测试数值之间,字符串 之间和对加粗样式象之间是否相等
equalToIgnoringCase:在忽略大小写的情况下等于
equalToIgnoringWhiteSpace:忽略头尾的任意个空格的情况下等于 - 数值匹配符:
closeTo</
- 一般对象匹配符: