0


头歌实训Junit实训进阶篇

头歌实训Junit实训进阶篇

第1关:Junit参数化测试

packagestep1;importstaticorg.junit.Assert.assertEquals;//静态导入importjava.util.Arrays;importjava.util.Collection;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.junit.runners.Parameterized;importorg.junit.runners.Parameterized.Parameters;importstep1.Calculator;/**
 * JUnit4的参数化测试
 */@RunWith(Parameterized.class)publicclassParameterTest{privateint input11;privateint input22;privateint expected;publicParameterTest(int input11,int input22,int expected){this.input11 = input11;this.input22 = input22;this.expected = expected;}@ParameterspublicstaticCollectionprepareData(){/**
         *该二维数组的类型必须是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}};returnArrays.asList(bject);/**********************************End**************************************************/}@TestpublicvoidtestSub(){Calculator cal =newCalculator();assertEquals(cal.sub(input11, input22), expected);}}

第2关:Junit异常测试

学员写一个Junit异常测试,用来判断实例化的对象数据是否合法。

packagestep2;importstaticorg.junit.Assert.*;importorg.junit.Rule;importorg.junit.Test;importorg.junit.rules.ExpectedException;importstep2.Person;publicclassJunitException{/**
     *请在Begin/End内加一行注解,要求检查Person对象的年龄是否合法,不合法则
     *抛出IllegalArgumentException异常
     *//************************************Begin**********************************************/@Test(expected =IllegalArgumentException.class)/************************************End************************************************/publicvoidcheckage(){Person person =newPerson();
    person.setAge(-1);}}

第3关:Junit套件测试

packagestep3;importstaticorg.junit.Assert.*;importorg.junit.Test;importorg.junit.runner.RunWith;importorg.junit.runners.Suite;importstep3.Calculate;importstep3.CalculateTest;importstep3.Car;importstep3.CarTest;/*
请在星号后加两行注解,要求实现CalculateTest类和CarTest类的套件测试
套件测试代码需要紧靠SuiteTest这个类,不能有换行
*///**************************************************************@RunWith(Suite.class)@Suite.SuiteClasses({CalculateTest.class,CarTest.class,RectangleTest.class})publicclassSuiteTest{}

第4关:命令行下进行Junit测试

packagestep4;importorg.junit.runner.JUnitCore;importorg.junit.runner.Result;importorg.junit.runner.notification.Failure;publicclassTestRunner{publicstaticvoidmain(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());}}
标签: junit 单元测试 java

本文转载自: https://blog.csdn.net/Jun_grape/article/details/128142543
版权归原作者 Jun_grape 所有, 如有侵权,请联系我们删除。

“头歌实训Junit实训进阶篇”的评论:

还没有评论