您的位置:首页 > 其它

JUnit学习笔记-入门介绍

2014-10-15 09:52 381 查看
新建Java项目,目录结构如图





T.java
package com.umgsai.junit4;

public class T {

public int add(int x, int y) {
return x + y;
}

public int divide(int x, int y) {
return x/y;
}

public static void main(String[] args) {
System.out.println(new T().add(2, 5));
//单元测试是写一个类要给别人用,测试会不会有bug
//不用main方法来测试原因:不能一起运行,大多数情况下需要人为观察输出确定是否正确
//阶段:需求  分析 开发 测试 部署  维护升级(成本最高。占60%左右)
}
}


TTest.java
package com.umgsai.junit4.test;

//静态引入,JDK5之后的语法
import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;

import static org.hamcrest.Matchers.*;

import com.umgsai.junit4.T;
public class TTest {

@BeforeClass//测试类所有方法开始之前执行。比如提前建立数据库的连接。
public static void BeforeClass(){
System.out.println("BeforeClass...");
}

@AfterClass//测试类所有方法结束之后执行。比如关闭数据库的连接。
public static void AfterClass(){
System.out.println("AfterClass...");
}

@Before//测试方法开始之前执行
public void before() {
System.out.println("before...");
}

@Test
public void testAdd() {
// 静态引入之后可以直接使用下面的方法
// fail("Not yet implemented");
int z = new T().add(5, 3);
assertEquals(8, z);
//		 Keep the bar green to keep the code clean.
//		assertTrue(z > 3);
//		assertTrue("z too small", z > 10);//加上错误消息
//		assertThat(z, is(8));
//		assertThat(z, allOf(greaterThan(1), lessThan(10)));//allOf中的条件必须都满足
//		assertThat(z, anyOf(greaterThan(56), lessThanOrEqualTo(11)));//满足其中一个条件即可
//		assertThat(z, anything());//

//		assertThat("umgsai", is("umgsai"));
//		assertThat("umgsai", not("umgsai1"));
//		assertThat("umgsai", containsString("sa"));
//		assertThat("umgsai", endsWith("sai"));
//		assertThat("umgsai", startsWith("umg"));
//		assertThat("umgsai", equalTo("umgsai11"));
//		assertThat("umgsai", equalToIgnoringCase("Umgsai"));
//		assertThat("umgsai", equalToIgnoringWhiteSpace("   umgsai"));

//		assertThat(3.2, closeTo(3.0, 0.2));//区间(2.8, 3.2)
//		assertThat(3.2, greaterThan(3.0));
//		assertThat(3.2, lessThan(12.0));
//		assertThat(5.0, greaterThanOrEqualTo(5.0));
//		assertThat(5.0, lessThanOrEqualTo(5.0));

//		assertThat(map, hasEntry("key", "value"));
//		assertThat(iterable, hasItem("item"));
//		assertThat(map, hasKey("key"));
//		assertThat(map, hasValue("value"));

//Error是程序出错
//Failure是测试失败
}

//@Ignore//不执行此测试方法
@Test(expected=java.lang.ArithmeticException.class, timeout=100)//期望抛异常.并且在100毫秒之内结束
public void testDivide() {
int z = new T().divide(8, 0);
assertThat(z, is(4));
}

@After//测试方法结束之后执行
public void after() {
System.out.println("after...");
}

}


同时测试多个类。在某个包上右键选择Run as ->Run confugrations->Run all tests in the selected project....

本文出自 “优赛工作室” 博客,请务必保留此出处http://shamrock.blog.51cto.com/2079212/1564182
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: