JUnit4学习总结
2016-06-10 13:14
323 查看
基本的注意事项
测试方法上必须使用@Test(当然在junit4中不必,这是junit3的规范,但是为了代码的规范,建议加上@Test)
测试方法必须使用public void 进行修改,不能带任何的参数
新建一个源代码目录来存放我们的测试代码(如果是maven项目的话不必新建,在 src/main/test目录下
测试类的包应该和被测试类保持一致
测试单元中的每个方法必须可以独立测试,测试方法之间不能有任何的依赖
测试类使用Test作为类名的后缀
测试方法使用test作为方法的前缀
在需要测试的类上进行新建junit类,放在测试的目录下,以及确保测试目录的包名和被测试类的包名一致。。将所有的方法进行选择
junit中 测试的三种状态
Failure一般由单元测试使用的断言方法判断失败所引起的,这经表示 测试点发现了问题就是说程序输出的结果和我们预期的不一样。
error是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的 一个隐藏的bug
测试用例不是用来证明你是对的,而是用来证明你没有错。
junit的测试流程
@BeforeClass修饰的方法会在所有的方法被调用前被执行
而且该方法是静态的,所以当测试类被加载后接着运行它,而且在内存中它只会存在一份实例,它比较适合加载配置文件。
@AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接
@before和@after会在每个测试的方法前后进行执行一次
***junit的注解
@Test:将一个普通的方法修饰成为一个测试方法
* @Test(expected=XX.class)捕捉异常
* @Test(timeout=毫秒 )运行多长时间
* @BeforeClass:它会在所有的方法运行前被执行,static修饰
* @AfterClass:它会在所有的方法运行结束后被执行,static修饰
* @Before:会在每一个测试方法被运行前执行一次
* @After:会在每一个测试方法运行后被执行一次
* @Ignore:所修饰的测试方法会被测试运行器忽略
* @RunWith:可以更改测试运行器 org.junit.runner.Runner
设置参数组进行测试
**多个测试类一起进行测试 组成测试套件
需要写一个测试套件类 ,是一个空类
{TaskTest1.class,TaskTest2.class,TaskTest3.class} 这是一个测试类的数组 表示的是三个测试的类 同时可以进行测试
在使用到框架的时候进行测试 Spring
需要在测试类中添加 setUpBeforeClass 方法,进去加载配置文件。。在Spring中需要加载application.xml 在hibernate中需要加载hibernate.cfg.xml 文件。。
测试方法上必须使用@Test(当然在junit4中不必,这是junit3的规范,但是为了代码的规范,建议加上@Test)
测试方法必须使用public void 进行修改,不能带任何的参数
新建一个源代码目录来存放我们的测试代码(如果是maven项目的话不必新建,在 src/main/test目录下
测试类的包应该和被测试类保持一致
测试单元中的每个方法必须可以独立测试,测试方法之间不能有任何的依赖
测试类使用Test作为类名的后缀
测试方法使用test作为方法的前缀
在需要测试的类上进行新建junit类,放在测试的目录下,以及确保测试目录的包名和被测试类的包名一致。。将所有的方法进行选择
junit中 测试的三种状态
Failure一般由单元测试使用的断言方法判断失败所引起的,这经表示 测试点发现了问题就是说程序输出的结果和我们预期的不一样。
error是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的 一个隐藏的bug
测试用例不是用来证明你是对的,而是用来证明你没有错。
junit的测试流程
@BeforeClass修饰的方法会在所有的方法被调用前被执行
而且该方法是静态的,所以当测试类被加载后接着运行它,而且在内存中它只会存在一份实例,它比较适合加载配置文件。
@AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接
@before和@after会在每个测试的方法前后进行执行一次
***junit的注解
@Test:将一个普通的方法修饰成为一个测试方法
* @Test(expected=XX.class)捕捉异常
* @Test(timeout=毫秒 )运行多长时间
* @BeforeClass:它会在所有的方法运行前被执行,static修饰
* @AfterClass:它会在所有的方法运行结束后被执行,static修饰
* @Before:会在每一个测试方法被运行前执行一次
* @After:会在每一个测试方法运行后被执行一次
* @Ignore:所修饰的测试方法会被测试运行器忽略
* @RunWith:可以更改测试运行器 org.junit.runner.Runner
设置参数组进行测试
@RunWith(Parameterized.class) public class ParameterTest { /* * 1.更改默认的测试运行器为RunWith(Parameterized.class) * 2.声明变量来存放预期值 和结果值 * 3.声明一个返回值 为Collection的公共静态方法,并使用@Parameters进行修饰 * 4.为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值 */ int expected =0; int input1 = 0; int input2 = 0; @Parameters public static Collection<Object[]> t() { return Arrays.asList(new Object[][]{ {3,1,2}, {4,2,2} }) ; } public ParameterTest(int expected,int input1,int input2) { this.expected = expected; this.input1 = input1; this.input2 = input2; } @Test public void testAdd() { assertEquals(expected, new Calculate().add(input1, input2)); } }
**多个测试类一起进行测试 组成测试套件
需要写一个测试套件类 ,是一个空类
import static org.junit.Assert.*; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({TaskTest1.class,TaskTest2.class,TaskTest3.class}) public class SuiteTest { /* * 1.测试套件就是组织测试类一起运行的 * * 写一个作为测试套件的入口类,这个类里不包含其他的方法 * 更改测试运行器Suite.class * 将要测试的类作为数组传入到Suite.SuiteClasses({}) */ }
{TaskTest1.class,TaskTest2.class,TaskTest3.class} 这是一个测试类的数组 表示的是三个测试的类 同时可以进行测试
在使用到框架的时候进行测试 Spring
需要在测试类中添加 setUpBeforeClass 方法,进去加载配置文件。。在Spring中需要加载application.xml 在hibernate中需要加载hibernate.cfg.xml 文件。。
相关文章推荐
- Android之使用Http协议实现文件上传功能
- mysql集群之MMM简单搭建
- 通晓网络测试常用命令
- Nodejs学习笔记之测试驱动
- 可以测试javascript运行效果的代码
- 使用php测试硬盘写入速度示例
- python 测试实现方法
- 如何测试端口通不通(四种方法)
- 举例详解PHP脚本的测试方法
- 使用Jasmine和Karma对AngularJS页面程序进行测试
- Php-Redis安装测试笔记
- mysql压力测试脚本实例
- JavaScript 组件之旅(四):测试 JavaScript 组件
- js简单网速测试方法完整实例
- Android触屏测试实例代码
- 解析libcurl在android下的移植、编译与测试
- 几个比较实用的JavaScript 测试及效验工具
- Java中对AtomicInteger和int值在多线程下递增操作的测试
- JUnit中获取测试类及方法的名称实现方法
- Python实现测试磁盘性能的方法