Java 单元测试 JUnit4 快速入门
来源:互联网 发布:淘宝如何设置运费险 编辑:程序博客网 时间:2024/06/04 19:44
JUnit最佳实践
运行结果说明
JUnit4中的测试套件
JUnit4的参数化设置
参考:慕课网
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public
class
CardServiceTest {
/**
* 最佳实践:
* 1. 测试方法上必须使用@Test进行修饰
* 2. 测试方法必须使用public void 进行修改,不能带任何的参数
* 3. 新建一个源代码目录存放我们的测试代码,测试类的包和被测试的一致
* 4. 测试单元中每个方法必须独立测试,不能有任何依赖
* 5. 测试类使用Test作为后缀,测试方法使用Test作为后缀(看个人喜好)
*/
@Test
public
void
addTest(){
// 使用断言
assertEquals(
6
,
new
CardService().add(
3
,
3
));
}
}
如下目录结构
1. Failure 一般由于单元测试使用的断言方法判断失败所引起的,就是说程序输出的结果和我们预期的不一样。
2. Errors 是由代码异常引起的,可能是测试代码本身错误或是被测试代码中的bug。
3. 一切都成功进度条显示绿色
JUnit常用注解说明
1. @BeforeClass修饰的方法会在所有方法被调用前执行,该方法是静态的,测试类被加载就会运行它,而且内存中只有一个实例存在,它比较适合加载配置文件等。
2. @AfterClass所修饰的方法通常用来对资源的清理,如管理数据库的连接等
3. @Before和@After会在每个测试方法的前后各执行一次。
4. @Test 将一个普通的方法修饰成一个测试方法
@Test(expected=XX.class) -预测的异常
@Test(timeout=2000) - 超时,单位毫秒
5. @Ignore 会被测试运行器忽略
6. @RunWith 可以更改测试运行器 org.junit.runner.Runner
7. @FixMethodOrder(MethodSorters.NAME_ASCENDING) // 类注解,设置运行类时方法的执行顺序规则,具体参数说明查看MethodSorters源码
1
2
3
4
5
6
7
8
9
10
@RunWith
(Suite.
class
)
@Suite
.SuiteClasses({ EquipmentServiceTest.
class
, UserServiceTest.
class
})
public
class
CardServiceTest {
/**
* 测试套件就是组织测试类一起运行
* 1. 写一个作为测试套件的入口类,这个类里不包含其他方法
* 2. 更改测试类的运行器Suite.class
* 3. 将要测试的类作为数组传入到Suite.SuiteClass({})
*/
}
Junit 4 引入了一个新的功能参数化测试。参数化测试允许开发人员使用不同的值反复运行同一个测试。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
@RunWith
(Parameterized.
class
)
public
class
CardServiceTest {
/**
* 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
CardServiceTest(
int
expected,
int
input1,
int
input2) {
this
.expected = expected;
this
.input1 = input1;
this
.input2 = input2;
}
@Test
public
void
addTest() {
// 会运行两次,以下的变量分别对应的是上面@Parameters声明的数值{ 3, 1, 2 }和 { 4, 2, 2 },
所以输出两次true
assertEquals(expected,
new
CardService().add(input1, input2));
}
}
参考:慕课网
资料(文档):http://wiki.jikexueyuan.com/project/junit/plug-with-eclipse.html
6. @RunWith 可以更改测试运行器 org.junit.runner.Runner
7. @FixMethodOrder(MethodSorters.NAME_ASCENDING) // 类注解,设置运行类时方法的执行顺序规则,具体参数说明查看MethodSorters源码
0 0
- Java 单元测试 JUnit4 快速入门
- 单元测试JUnit4入门指南
- JUnit4单元测试入门详解
- JUnit4单元测试入门
- java单元测试工具JUnit4
- java 单元测试框架-JUnit4
- Java单元测试框架-JUnit4
- Java JUnit4单元测试步骤
- java单元测试Junit4
- Java单元测试--JUnit4
- Idea配置JUnit4单元测试入门
- JUnit4快速入门(转)
- JUnit4快速入门(转)
- JUnit4.x快速入门
- 01-Junit4快速入门
- Junit4快速入门
- Junit4快速入门
- java单元测试(使用junit4)
- iPhone消息推送机制
- 如何保证一个类只能在堆上被创建
- Cognos技术
- Android加载大图片到内存
- leetcode16.cloneGraph
- Java 单元测试 JUnit4 快速入门
- oracle database vault(数据库保险库)
- Linux 下编译 redis 和 phpredis
- 【Unity 3D】学习笔记七:ScrollView控件(滚动视图)
- AFNetworking 2.0 Tutorial
- x86主板蜂鸣器操作
- oracle数据库的几个重要概念
- js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
- 余额宝为代表的互联网宝宝收益率普遍破5 银行宝宝占据前三甲