junit测试工具学习笔记1
来源:互联网 发布:在哪看淘宝达人的帖子 编辑:程序博客网 时间:2024/06/01 20:08
首先新建一个类:
- package com.zzk.junit4;
- public class T {
- public int add (int x,int y) {
- return x + y;
- }
- //老版本的测试
- public static void main(String[] args) {
- int z = new T().add(3, 5);
- System.out.println(z);
- }
- }
然后写一个JUNIT单元测试,对add(int x ,int y)进行测试
可以单独对方法是用JUNIT测试:
- package com.zzk.junit4.test;
- import static org.junit.Assert.*;//这是一个类不是包
- import org.junit.After;
- import org.junit.Test;
- import com.zzk.junit4.T;
- public class TTest {
- @After
- public void tearDown() throws Exception {
- }
- @Test
- public void testAdd() {
- //fail("Not yet implemented");
- int z = new T().add(5, 3);
- assertEquals(8, z);//期望值8,实际值z
- }
- }
文档一份如下:
什么是单元测试
写了个类,要给别人用,会不会有bug?怎么办?测试一下。
用main方法测试好不好?不好!
1. 不能一起运行!
2. 大多数情况下需要人为的观察输出确定是否正确
为什么要进行单元测试
重用测试,应付将来的实现的变化。
提高士气,明确知道我的东西是没问题的。
JUnit4 HelloWorld
1. new project
2. 建立类
3. 建立testcase
放弃旧的断言,使用hamcrest断言
1. assertThat
2. 使用hamcrest的匹配方法
a) 更自然
3. 示例
a) assertThat( n, allOf(greaterThan(1), lessThan(15) ) );
assertThat( n, anyOf( greaterThan(16), lessThan(8) ) );
assertThat( n, anything() );
assertThat( str, is( "bjsxt" ) );
assertThat( str, not( "bjxxt" ) );
b) assertThat( str,containsString( "bjsxt" ) );
assertThat( str, endsWith("bjsxt" ) );
assertThat( str, startsWith( "bjsxt" ) );
assertThat( n, equalTo( nExpected ) );
assertThat( str, equalToIgnoringCase( "bjsxt" ) );
assertThat( str, equalToIgnoringWhiteSpace( "bjsxt" ) );
c) assertThat( d, closeTo( 3.0, 0.3) );
assertThat( d, greaterThan(3.0) );
assertThat( d, lessThan (10.0) );
assertThat( d, greaterThanOrEqualTo (5.0) );
assertThat( d, lessThanOrEqualTo (16.0) );
d) assertThat( map, hasEntry("bjsxt", "bjsxt" ) );
assertThat( iterable, hasItem ( "bjsxt" ) );
assertThat( map, hasKey ( "bjsxt" ) );
assertThat( map, hasValue ( "bjsxt" ) );
Failure和Error
1. Failure是指测试失败
2. Error是指测试程序本身出错
JUnit4 Annotation
1. @Test: 测试方法
a) (expected=XXException.class)
b) (timeout=xxx)
2. @Ignore: 被忽略的测试方法
3. @Before: 每一个测试方法之前运行
4. @After: 每一个测试方法之后运行
5. @BeforeClass: 所有测试开始之前运行
6. @AfterClass: 所有测试结束之后运行
运行多个测试
注意
1. 遵守约定,比如:
a) 类放在test包中
b) 类名用XXXTest结尾
c) 方法用testMethod命名
其他框架
TestNG
- junit测试工具学习笔记1
- junit 测试学习笔记
- Android学习笔记-junit测试
- JUnit学习笔记7---mock objects进行孤立测试1
- JUnit学习笔记7---mock objects进行孤立测试1
- JavaWeb学习笔记-java基础-1-测试框架junit
- Junit学习笔记1
- junit 学习笔记1
- JUnit学习笔记1
- 测试驱动开发(tdd)学习笔记 (2) 工具,技术 junit
- Junit学习笔记之一:junit的安装和测试原则
- Junit学习笔记之-- 测试套件
- Junit测试工具
- 测试工具(junit, mockito)
- Junit JAVA 测试 工具
- JUnit测试工具
- 测试工具之charles学习笔记1
- JUnit测试笔记(一)
- 越狱团队否认收钱并中止与太极合作
- 解决 FtpClient 类无法导入 .
- Mongodb源码分析--日志及持久化
- 【Java算法学习】鸡兔同笼问题
- 黑马程序员----java集合
- junit测试工具学习笔记1
- 程序中实现可从两个入口进入类似switch的方法
- ZOJ 1151 Word Reversal
- 【*_*】【opencv】CvvImage 的问题
- 程序员:如何写出杀手级简历
- 一个经典例子让你彻彻底底理解java回调机制(一)
- 新加坡架构师面试总结
- Objective-C对象模型及应用
- (译)如何优化cocos2d程序的内存使用和程序大小:第一部分