一,背景,

有时候会对相同的代码结构做同样的操作,不同的时对参数的设置数据和预期结果;有没有好的办法提取出来相同的代码,提高代码的可重用度,junit4中使用参数化设置,来处理此种场景;

 

二,代码展示,

1,右键test/com.duo.util新建->junit Test Case

2,修改测试运行器(@RunWith(Parameterized.class))

 1 package com.duo.util;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import org.junit.Test;
 6 import org.junit.runner.RunWith;
 7 import org.junit.runners.Parameterized;
 8 
 9 
10 @RunWith(Parameterized.class)
11 public class ParameterTest {
12 
13     
14 }

 

3,声明变量存储测试数据和预期值

4,测试多组数据,就需要声明一个数组存放结果数据;为测试类声明返回值为Collection公共静态方法;

 1 package com.duo.util;
 2 
 3 import static org.junit.Assert.*;
 4 
 5 import java.util.Arrays;
 6 import java.util.Collection;
 7 
 8 import org.junit.Test;
 9 import org.junit.runner.RunWith;
10 import org.junit.runners.Parameterized;
11 import org.junit.runners.Parameterized.Parameters;
12 
13 
14 @RunWith(Parameterized.class)
15 public class ParameterTest {
16     int expected = 0;
17     int input1 = 0;
18     int input2 = 0;
19     
20     @Parameters
21     public static Collection<Object[]> t(){
22         return Arrays.asList(new Object[][]{{3,1,2},{4,2,2}});
23     }
24     
25     public ParameterTest(int expected, int input1, int input2){
26         this.expected = expected;
27         this.input1 = input1;
28         this.input2 = input2;
29     }
30     
31     @Test
32     public void testAdd(){
33         assertEquals(expected, new Calculate().add(input1, input2));
34     }
35 
36     
37 }

 

 三,总结

1,更改默认的测试运行器为RunWith(Parameterized.class)

2,声明变量存储预期值和测试数据

3,声明一个返回值为Collection公共静态方法,并使用@Parameters进行修饰

4,为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值

posted @ 2017-04-17 20:44 august_shi 阅读(2744) 评论(0) 推荐(0)
摘要: 一,背景 1,随着开发规模的深入和扩大,项目或越来越大,相应的我们的测试类也会越来越多;那么就带来一个问题,假如测试类很多,就需要多次运行,造成测试的成本增加;此时就可以使用junit批量运行测试类的功能,junit test suite,测试套件;每次运行测试类,只需要执行一次测试套件类就可以运行 阅读全文
posted @ 2017-04-16 22:41 august_shi 阅读(1873) 评论(0) 推荐(0)
摘要: 一,背景知识: 由前面的知识可以知道: /* * @Test:将一个普通方法修饰为一个测试方法 * @Test(exception=XXX.class) * @Test(time=毫秒) * @BeforeClass:它会在所有的测试方法前被执行,static修饰 * @AfterClass:它会在 阅读全文
posted @ 2017-04-16 22:08 august_shi 阅读(4098) 评论(0) 推荐(1)
摘要: 一,验证Junit测试方法的流程 1,在test/com.duo.util右键,新建测试类 2,生成后的代码: 运行结果: 二,总结: 1,@BeforeClass修饰的方法会在所有方法被调用前被执行;而且该方法是静态的,所以当测试类被加载后接着就会运行它,而且在内存中它只会存在一份实例,它比较适合 阅读全文
posted @ 2017-04-16 21:23 august_shi 阅读(980) 评论(0) 推荐(0)
摘要: 一,前言 首先理解: 1,测试用例不是证明你是对的,而是证明你没有错 2,测试用例用来达到想要的预期结果,但对于逻辑错误无能为力 二,两种测试失败:error And Failure 1,Failure 此种情况是没有达到预期的结果,预期和结构不匹配 2,error 此种方法是逻辑错误,标红的除数为 阅读全文
posted @ 2017-04-16 21:04 august_shi 阅读(1825) 评论(0) 推荐(0)
摘要: 一,学习Junit4,学以致用 二,熟悉编写流程 工具:Eclipse,Junit包,hamcrest.core包 1,打开Eclipse开发工具,新建工程:file->Java Project或者使用快捷键(alt+shift+N) 并起名工程名字:junit4Demo2 2,创建被测试数据的包文 阅读全文
posted @ 2017-04-16 20:43 august_shi 阅读(3894) 评论(0) 推荐(0)
摘要: Shift+右键拖拽或者Ctrl+左键单击选择多个位置 阅读全文
posted @ 2017-04-12 21:54 august_shi 阅读(461) 评论(0) 推荐(0)
摘要: 1,File-->Project Structure 说明:可以设置整个工程的JDK,也设置每个modules的JDK,但是一般整个工程的JDK. 2,或者通过快捷键:ctrl+alt+shift+s 阅读全文
posted @ 2017-04-01 12:28 august_shi 阅读(309) 评论(0) 推荐(0)
摘要: 现象:1,MarkDown编辑两行显示,但是实际显示为一行; 2,编辑状态中空一行,此时显示为也空了一行,界面显示不友好; 解决:在第一行中最后输入至少2个空格+回车即可显示正常; 阅读全文
posted @ 2017-03-03 17:03 august_shi 阅读(1805) 评论(0) 推荐(1)
摘要: 用户名和邮箱地址的作用 用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。 每次commit都会用用户名和邮箱纪录。 github的contributions统计就是按邮箱来统计的。 查看用户名和邮箱地址: $ git config user.name $ git config us 阅读全文
posted @ 2017-03-01 16:14 august_shi 阅读(247) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示