• JUnit4简易教程


    1.下载JUnit4的jar包,在项目上右键选properties->Java Build Path ->Libraries->Add library添加刚才的jar包

    2.在项目中找一个要测试的类(或者在其他包中建立,再选要测试的类),右键New-> JUnit Test Case

    3.如果是在要测试的类上new则Class under test直接会选中当前类,否则要自己手动选择要测试的类.

    4.点击下一步则勾选要测试的方法,下一步则生成测试类.

    5.点击生成的测试类,run as -> JUnit Test则可以进行测试.

    下面讲解一下测试类中的一些注释的作用.

    @Test标注

    假设要测试的类是ClassA.java,生成的测试文件是ClassATest.java

    我们要测试ClassA中的funcA方法,则我们在ClassATest.java中要先创建一个ClassA的对象

    private static ClassA classa= new ClassA ();

    在测试类ClassATest.java中的测试方法TestfuncA之前,我们要先添加@Test ,表示这个是测试函数,并且TestfuncA必须无返回值.

    public void TestfuncA(){
      assertEquals(2,classa.funcA()); //如果classa.funcA()的结果是2则正确,否则错误.
    }

    @Test的作用就是声明这个是测试方法.

    @Ignore标注

    假设测试类ClassATest.java中的测试方法TestfuncB的测试方法还没写好,不想测试的时候运行他,则可以用该标注来跳过.

    @Before

    我们想对ClassA做单元测试,但是可能里面的funcA运行之后,会影响funcB的值(如改变了全局变量).这个时候就要在测试类ClassATest.java中定义

    一个还原初始值的方法,并在前面添加标注@Before,表示在每个单元测试之前都执行该方法.

    @After

    作用和@Before是一样的,只是运行的时机不同.

    @BeforeClass 和 @AfterClass

    原理和@Before和@After是一样的,只是运行的时机是 测试用例初始化时 和 当所有测试执行完毕之后.

    @Test(timeout = 10000)

    设置该方法的超时事件,防止测试的方法出现死循环然后一直卡住.

    @Test(expected = ArithmeticException.class)

    如果测试结果抛出了ArithmeticException异常则是正确的,否则是错误的.

    @RunWith(XXXX.class)

    指定测试代码提交给JUnit框架后用哪个运行器来执行,默认是TestClassRunner.class,但是要注意这个标注是用来修饰类的,不是用来修饰方法的.如果指定了,

    整个类下面所有的方法都是用这个运行器.

    @Suite.SuiteClasses

    当我们写了很多很多个测试类,不想每个测试类单独运行,而是打包一次测试,则可以用这个标注.

    @Suite.SuiteClasses({ClassATest.class,ClassBTest.class}),但是要注意,此时的运行器必须指定@RunWith(Suite.class)

    @Parameters

    当被测试的ClassA里面的funcA可以有多种输入,并且每种输入会有不要同的输出结果.我们想一次输入不同的参数,然后测试不同的结果.而不是为每种参数情况

    写一个测试方法.这个时候就可以用Parameters的标注.

    但是我们必须要为测试类ClassATest.java写一个构造方法

    public Test(int expected,int input1,int input2)//构造方法,为各个参数赋值,Test中对这3个变量的定义在此省略。
     {
        this.expected=expected;//希望的结果
        this.input1=input1;//输入1
        this.input2=input2;//输入2
      }

    并且用标注Parameters

    @Parameters
     public  static  Collection  prepareData()
     {
     Object[][] object ={{3,1,2},{-4,-1,-3},{5,0,5}};//对应构造方法中的3个参数
     return Arrays.asList(object);//数组转化成集合形式。
     
     }

    此时,在测试函数中就可以用了

     @Test
     public void  TestfuncA()
     {
      assertEquals(this.expected,classa.funcA(this.input1, this.input2));//注意是调用的成员变量。
      
     }
  • 相关阅读:
    关于jar项目发布(windows)
    SpringBoot 基础(一) mybatis 通过druid配置多数据库
    redis 基础(二) Redis安装
    测试开发3年,我决定去读个名校硕士
    大厂程序员凡尔赛的一天
    假如我拥有字节工牌。。。
    上海有哪些牛逼的互联网公司?
    那些学计算机的女生后来都怎么样了?
    微信支付零花钱刷屏了!5万额度,能花又能借
    清华集训 part1
  • 原文地址:https://www.cnblogs.com/linl/p/4035319.html
Copyright © 2020-2023  润新知