Skip to content

bb90d05b778f2ce312fbc09a6231a5cb_MD5 ff99560cdd2d2f7fd9a907da469f34d7_MD5 对应起来就是: 7a6415755798f5d76d18a3925184d573_MD5

单元测试

9ba2b71de10244f0b310c5c1b7785441_MD5 216ab0b1d02bad00c79b1a748b357db4_MD5

示例

有这么一段代码: 0585ab6574253f6c7f3edf42b1c87892_MD5 加到项目中: e37800fc53c67955b0390e87c3a84a73_MD5 5cef9449cc39231ea72fd14bc148a549_MD5 规范是建议遵守,规定必须遵守. 883b6fe3ddcaf8fe1577a74785716b22_MD5 项目结构如图.另外,点击类名的测试会测试所有的函数,点击函数的测试只会测当前函数. 结果: 292589a91c56bb99efd19c24516b5b58_MD5

断言

8c1f1eba1f9769ef51e6d0166b02f0d8_MD5 Equals中,第一个参数是期望值,第二个是实际值.如果报错,那么会提示出msg. 最后一个msg可以不传递. 测试失败: 6d7e0a65c43067006a42e56832341abc_MD5 抛出异常的检查:第二个参数是一个函数式接口 5a86b34ceef9a0a4fabbaa1369097da9_MD5

常见注解

57120b38b1513f396c8c3e690af739a2_MD5

演示:

2e196ff384be6645ddcb3861cf31a10b_MD5 下面的代码中,strings是一个数组: c6bad4592b3e9dfbdc94e8c9407fd084_MD5 注解: 87eefdacfc01cede4652e5326ff277f0_MD5 a23acc09c452ef39c060f94a1971fb48_MD5 修改之后,演示为: 68a6cbd43e4b710ea6f03c5b3a105c8f_MD5

企业开发规范

bbc6ae0ae8e617af0b8a4ed815152f33_MD5 比如,就刚才的代码而言: 6ba5c489caa4341214fce8696f75628b_MD5 身份证号要考虑:传进来空,传进来过长过短,传过来是男是女. 原本的代码: fe428361988f0dc0472648ea54078a4f_MD5 这里的代码似乎没有注明会抛出什么异常,不够规范? 692e5c356bec3575b44af79a431b330c_MD5 0369ef26578c4e6ae1cd9d9657b9891c_MD5 774b2e123570e1ed0a975a008801d342_MD5 当然,还需要一些正常的测试.不多赘述.

如何得知测试的全不全?

7b5862a015e75a5e152f5e03b33346be_MD5 这便是统计覆盖率.点击之后,可以得到: 2adfb6f694ed3033188ea8eb18f403ee_MD5 由于默认统计的是一个包里面的,因此会把helloworld加进来. class:表示你这个类测过了. method:业务方法测了50%,这是正常的,因为我们只测试了一个方法. 与此同时,点击左边的代码区: be80bd62c7a0a8c7de91cb9b1974a957_MD5 可以看到覆盖了什么.

一般公司里会要求核心代码覆盖率100%,非核心的80% 可以修改只统计某一个java文件: 5cc3dbf1b55989eac7e5a984c70b8b4c_MD5 e42fcb26d5c3e12f352d59114e6763aa_MD5

依赖范围

我们可以验证:如果我们在main里面写@test,也是可以的.但是这样极不规范,我们可不可以限制不允许这么做? 1b7f8e360dc1a18b407ef4baa93e9f07_MD5 前两者最常用. 其实compile最常用,以后我们写的绝大部分都是compile.

如果使用maven的test: f69662e58de2ab7ba8571fe47ab31b88_MD5 运行后,会执行所有的规范的单元测试(规范:命名为...Test的单元测试就叫规范)

如果我打包的时候不想运行测试:(跳过测试) 8d6372f18e13052d6de5a83d28920238_MD5