Junit单元测试


前言

平时在写代码的时候,如果需要测试某个功能我们一般会创建一个Test的测试类,然后写一个main方法,在main方法中测试我们的代码,但是每次需要测试新功能的时候就不得不把原来的测试代码注释掉,或者再写一个Test类,这样很麻烦,建议再测试代码的时候使用Junit测试

Junit使用方法

例子:比如我们现在有一个Calculator,需要测试它里面的 add() 和 sub()。

/**
* @Author superMonkey
* @Date 2022/7/21 23:49
* @Description TODO
*/
public class Calculator {
   /**
    * 相加的方法
    * @param a
    * @param b
    * @return
    */
   public int add(int a, int b) {
       return a + b;
  }

   /**
    * 相减的方法
    * @param a
    * @param b
    * @return
    */
   public int sub(int a, int b) {
       return a - b;
  }
}

 

第一步:

  • 在Calculator类所在包路径的同级目录下面建立一个test的包。

  • 在test的包里面创建一个 测试类名Test 的类,例如CalculatorTest的测试类。

  • 在测试类中创建测试方法,命名 test需要测试的方法名 ,例如testAdd()。

  • 在当前方法的上面加上 @Test 注解,这个注解来自于 org.junit这个包下。

  • 点击运行就可以测试了。

  • 如果需要要测试减法,再旁边再写一个减法的测试方法就可以了

/**
* @Author superMonkey
* @Date 2022/7/21 23:50
* @Description TODO
*/
public class CalculatorTest {

   @Test
   public void testAdd(){
       Calculator calculator = new Calculator();
       int result = calculator.add(2, 5);
       System.out.println(result);
  }
   
  @Test
   public void testSub(){
       Calculator calculator = new Calculator();
       int result = calculator.sub(2, 5);
       System.out.println(result);
  }

}

断言

在上述的测试方法中,如果测试后Idea的界面不出现红色就说明测试通过,但是通过结果来判断测试是否正确是不可靠的,如过方法内部写错,比如,add()方法内部变成了,a -b; 本来是加法,现在却变成了减法,使用Junit测试之后,是可以正常输出结果的,但是结果其实是不正确的。这个时候就需要使用断言。

 @Test
public void testAdd(){
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 5);
    /**
        * 断言就是我先判断方法允许的结果是什么样子,和实际方法的输出做对比。
        * 如果相同,Idea出现绿色,不同出现红色。
        * 下面就是我断言结果是 7 ,但是如果result不是7就是说明add()方法错了。
        */
       Assert.assertEquals(7, result);
       System.out.println();
  }

@Before,@After

@Before , @After是Jnuit提供的两个注解

@Before:在所用的测试方法执行之前需要准备的资源。

@After:在所有的测试方法执行之后需要释放的资源。

public class CalculatorTest {

@Before
public void init() {
    System.out.println("初始话测试需要的资源。。");
}

@Test
public void testAdd(){
    Calculator calculator = new Calculator();
    int result = calculator.add(2, 5);
    Assert.assertEquals(7, result);
    System.out.println();
}

@After
public void close() {
    System.out.println("关闭测试中使用到的资源");
}
}

 

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/276417.html

(0)
上一篇 2022年7月23日
下一篇 2022年7月23日

相关推荐

发表回复

登录后才能评论