关于测试集,实质就是包含若干个测试类的集合,通过一个具体的实例,让我们来了解一下Junit的测试集
package org.yezi.junit;
public class Calcaute {
public int ride(int a, int b){
return a * b;
}
public int add(int a, int b){
return a + b;
}
public int reduce(int a, int b){
return a - b;
}
}
package org.yezi.junit;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestAdd {
@Test
public void testAdd(){
Calcaute calcaute = new Calcaute();
int result = calcaute.add(80, 20);
assertEquals(100, result);
}
}
package org.yezi.junit;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestReduce {
@Test
public void testReduce(){
Calcaute calcaute = new Calcaute();
int result = calcaute.reduce(80, 20);
assertEquals(60, result);
}
}
package org.yezi.junit;
import org.junit.Test;
import static org.junit.Assert.*;
public class TestRide {
@Test
public void testRide(){
Calcaute calcaute = new Calcaute();
int result = calcaute.ride(80, 20);
assertEquals(1600, result);
}
}
package org.yezi.junit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import static org.junit.Assert.*;
@RunWith(value=Suite.class)
@SuiteClasses(value={
TestAdd.class, TestReduce.class, TestRide.class})
public class TestAllRunner {
@Test
public void testAdd(){
Calcaute calcaute = new Calcaute();
int result = calcaute.add(10, 20);
assertEquals(20, result);
}
}
在TestAllRunner.java中我们使用@RunWith(value=Suite.class)注解声明该类是一个测试集;
使用@SuiteClasses(value={TestAdd.class, TestReduce.class, TestRide.class})声明该测试集所包含的测试类,运行结果正常通过。
但是我们在TestAllRunner.java声明的一个测试却没有运行(因为这个测试应该不能通过的),这是因为我们并没有把TestAllRunner.java声明到测试集中,通过修改测试集声明
@SuiteClasses(value={
TestAdd.class, TestReduce.class, TestRide.class, TestAllRunner.class})
我们可以让TestAllRunner.java中的测试也一起运行