头歌实训Junit实训进阶篇
第1关:Junit参数化测试
package step1;
import static org.junit.Assert.assertEquals; //静态导入
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import step1.Calculator;
/**
* JUnit4的参数化测试
*/
@RunWith(Parameterized.class)
public class ParameterTest {
private int input11;
private int input22;
private int expected;
public ParameterTest(int input11, int input22, int expected){
this.input11 = input11;
this.input22 = input22;
this.expected = expected;
}
@Parameters
public static Collection prepareData(){
/**
*该二维数组的类型必须是Object类型的
*该二维数组中的数据是为测试Calculator中的sub()方法而准备的
*该二维数组中的每一个元素中的数据都对应着构造方法ParameterTest()中的参数的位置
*所以依据构造方法的参数位置判断,该二维数组中的第一个数减去第二个数等于第三个数
*请在Begin/End内补全代码,要求为单元测试传递4组参数,来验证Calculator中的sub函数编写是否正确
*提示:只需要补2行代码
*/
/*********************************Begin*************************************************/
Object[][] bject ={{-1,-2,1},{0,2,-2},{-1,1,-2},{1,2,-1}};
return Arrays.asList(bject);
/**********************************End**************************************************/
}
@Test
public void testSub(){
Calculator cal = new Calculator();
assertEquals(cal.sub(input11, input22), expected);
}
}
第2关:Junit异常测试
学员写一个Junit异常测试,用来判断实例化的对象数据是否合法。文章来源地址https://www.toymoban.com/news/detail-586696.html
package step2;
import static org.junit.Assert.*;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import step2.Person;
public class JunitException {
/**
*请在Begin/End内加一行注解,要求检查Person对象的年龄是否合法,不合法则
*抛出IllegalArgumentException异常
*/
/************************************Begin**********************************************/
@Test(expected = IllegalArgumentException.class)
/************************************End************************************************/
public void checkage() {
Person person = new Person();
person.setAge(-1);
}
}
第3关:Junit套件测试
package step3;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import step3.Calculate;
import step3.CalculateTest;
import step3.Car;
import step3.CarTest;
/*
请在星号后加两行注解,要求实现CalculateTest类和CarTest类的套件测试
套件测试代码需要紧靠SuiteTest这个类,不能有换行
*/
//**************************************************************
@RunWith(Suite.class)
@Suite.SuiteClasses({ CalculateTest.class, CarTest.class, RectangleTest.class })
public class SuiteTest {
}
第4关:命令行下进行Junit测试
package step4;
import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;
public class TestRunner {
public static void main(String[] args) {
//请在Begin/End内加一行代码,要求如果测试类JunitSubTest.java中的测试都通过,则main函数会打印true
/******************************Begin**************************************************/
Result result = JUnitCore.runClasses(JunitSubTest.class);
/******************************End****************************************************/
for (Failure failure : result.getFailures()) {
System.out.println(failure.toString());
}
System.out.println(result.wasSuccessful());
}
}
文章来源:https://www.toymoban.com/news/detail-586696.html
到了这里,关于头歌实训Junit实训进阶篇的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!