发表于: 2017-07-01 21:54:19
1 1305
今天完成的事情:
1. 完成了乘除减的测试类
2. 了解junit注释
3.了解junit断言
明天计划的事情:
1. 继续学习junit
2.学习Spring
遇到的问题:
1.int var1 = 1;
assertTrue(var1);//错误
括号内必须为boolean类型,不能为int类型
2. string obj1 = "";
assertNotNull(obj1);//错误
java中空字符串和0不等于null
收获:
1.乘除减的测试类,及其常用junit注释
package com.my.junit;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.*;
public class CalculateTest {
Calculate calculation;
//@BeforeClass测试开始第一时间执行
@BeforeClass
public static void before() {
System.out.println("测试开始");
}
//@AfterClass所有测试完成后执行
@AfterClass
public static void after() {
System.out.println("测试结束");
}
//@Before初始化方法,每一个测试方法(@Test)前都要运行
@Before
public void setUp(){
calculation = new Calculate();
System.out.println("开始!");
}
//@After每个测试方法结束后执行
@After
public void tearDown(){
System.out.println("结束!");
}
//(timeout = 300)如果在300毫秒内不能完成测试,则失败
@Test(timeout = 300)
public void testSum(){
try{
Thread.sleep(100);//在此暂停100毫秒
}catch(InterruptedException e){
e.printStackTrace();
}
int sum = calculation.sum(2,5);
System.out.println("@Test sum();" + sum + "=" + 7);
assertEquals(sum,7);
}
@Test
public void testSub(){
int sub = calculation.sub(5,2);
System.out.println("@Test sub();" + sub + "=" + 3);
assertEquals(sub,3);
}
@Test
public void testMulti(){
int multi = calculation.multi(5, 2);
System.out.println("@Test multi();" + multi + "=" + 10);
assertEquals(multi,10);
}
@Test
public void testDiv(){
int div = calculation.div(0, 2);
System.out.println("@Test div();" + div + "=" + 5);
assertEquals(div,5);
}
//通过@Test元数据中的expected属性验证是否抛出期望的异常
//如果有异常则测试通过,没有则不通过
//例如: 如果除数为0则通过测试。
@Test(expected = ArithmeticException.class)
public void testDivException(){
int div = calculation.div(10, 0);
System.out.println("@Test div();" + div + "=" + 5);
assertEquals(div,5);
}
//该元数据标记的测试方法在测试中会被忽略。同时可以为该标签传递一个String的参数
@Ignore("sqrt() Not yet implemented")
@Test
public void testSqrt(){
}
//如果在300毫秒内不能完成测试,则失败
@Test(timeout=300)
public void testFor1(){
calculation.for1(4);
}
}
结果:
2. junit的常用断言
package com.my.junit;
import static org.junit.Assert.*;
import org.junit.Test;
public class AssertionsTest {
@Test
public void test(){
String obj1 = "junit";
String obj2 = "junit";
String obj3 = "test";
String obj4 = "test";
String obj5 = null;
int var1 = 1;
int var2 = 1;
int[] arithmetic1 = {1, 2, 3};
int[] arithmetic2 = {1, 2, 3};
//断言两个值是否相等
assertEquals(obj1,obj2);
//两个对象的引用相同对象
assertSame(obj4,obj3);
//两个对象不是引用同一个对象
assertNotSame(obj2,obj4);
//对象不为空
assertNotNull(obj1);
//对象为空
assertNull(obj5);
//条件为真, 括号里必须为boolean类型
assertTrue(var1 == var2);
//预期数组和结果数组相等
assertArrayEquals(arithmetic1, arithmetic2);
}
}
结果:
参考资料:
PS:下次试一试测试复杂一点的类
评论