工具解释
学习地址:MOOC
https://www.imooc.com/learn/356
单元测试框架
官网地址
通过断言机制将测试结果和预期结果对比,从而得到测试效果和指导提示。
说明文档
http://junit.org/junit4/javadoc/latest/index.html
应用
快速入门演示
一般项目中,除了发布版,test或者其他辅助开发的模块,发布时均会删除丢弃,所以不用的就删掉免干扰。
Assertequals(,new 一个方法)
应用格式
1.【强制】测试方法都必须使用@Test修饰
2.【强制】测试方法用public void修饰,不带任何参数
3.【强制】新建源代码目录存放测试代码块,并在该包下,测试类结构组织和被测试类尽量保持一致。
4.【强制】每个测试方法可以独立测试,不能有任何依赖。
5.【约定】类名用Test后缀,测试方法用test前缀。
两种测试失败的情况:
Failure:使用断言方法失败,说明调试点有问题(结果不符合预期),出错位置很可能是测试代码块。
Error:代码异常引起。出错位置可能是测试代码块,也可能是被测试代码块。
Junit运行流程
能代表运行流程的几个修饰方法的注解
@Beforeclass由于是静态方法,内存只有一份实例,一般适合配置文件之类的。
所以被它修饰的方法在所有方法调用前执行(紧随测试类被加载之后)。
@Afterclass通常用来清理和释放资源,如关闭数据库连接等。
@Before和@After分别在每个测试方法前后各执行一次。
常用注解
@BeforeClass
@AfterClass
@Before
@After
@Ignore:被修饰的测试方法,被测试运行器忽略。
@RunWith:更改测试运行器。一般默认为Org.junit.runner.Runner。
@Test讲一个测试方法修饰为普通方法
@Test(excepted=异常类类名)
@Test(timeout=XX毫秒)
断言倒入包后直接可以用,因为是静态方法(public static void)。
测试套件
将多个测试方法类集成到一起测试,测试套件组织测试类一起运行。
操作步骤
1. 写一个作为测试套件的入口类,不包含其他方法。
2. 更改测试运行器suite.Class
3. 将想测试的的类作为数组传入suit.suitClass({})
@RunWith(Suite.Class)
@Suite.SuiteClass({被测试类名称,。。。})
参数设置
1. 更改默认测试运行器为RunWith(Parameterized.Class)
2. 声明变量来存放预期值和结果值。
3. 声明一个返回值为collection且被@parameters修饰的公共静态方法。
4. 为测试类声明一个带参数的公共构建函数,并在其中为声明变量赋值。
Spring和Hibernate整合测试
反复看,反复操作。