zoukankan      html  css  js  c++  java
  • 使用JUnit进行单元测试

    Profile:

    JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.

    由于使用的eclipse版本自带了JUnit所以不用下载即可使用,如果要下载可在官网junit.org下载jar包。

    下面是一个简单的计算器程序:

    先编写计算器接口ICalculator.java用于描述功能:

     1 package Calculate;
     2 
     3 public interface ICalculator {
     4     
     5     public double add(double arg1, double arg2);
     6     
     7     public double subtract(double arg1, double arg2);
     8     
     9     public double division(double arg1, double arg2);
    10     
    11     public double multiply(double arg1, double arg2);
    12     
    13 }

    在编写接口实现类Calculator.java:

     1 package Calculate;
     2 
     3 public class Calculator implements ICalculator {
     4 
     5     @Override
     6     public double add(double arg1, double arg2) {
     7         
     8         return arg1 + arg2;
     9     }
    10 
    11     @Override
    12     public double subtract(double arg1, double arg2) {
    13         
    14         return arg1 - arg2;
    15     }
    16 
    17     @Override
    18     public double division(double arg1, double arg2) {
    19         
    20         return arg1/arg2;
    21     }
    22 
    23     @Override
    24     public double multiply(double arg1, double arg2) {
    25         
    26         return arg1*arg2;
    27     }
    28 
    29 }

    点击项目右键新建junit test case创建测试类CalculateTest.java,选择对应的包和要测试的类:

     1 package Calculate;
     2 
     3 import static org.junit.Assert.*;
     4 
     5 import org.junit.Before;
     6 import org.junit.Test;
     7 
     8 public class CalculateTest {
     9 
    10     private ICalculator _calculator = new Calculator();
    11     
    12     @Before
    13     public void setUp() throws Exception {
    14     }
    15 
    16     @Test
    17     public void testAdd() {
    18         assertEquals(5, _calculator.add(2, 3), 0);
    19         assertEquals(5, _calculator.add(3, 2), 0);
    20         assertEquals(2, _calculator.add(2, 0), 0);
    21         assertEquals(2, _calculator.add(0, 2), 0);
    22         assertEquals(0, _calculator.add(0, 0), 0);
    23         assertNotEquals(0, _calculator.add(0, 2));
    24     }
    25 
    26     @Test
    27     public void testSubtract() {
    28         assertEquals(5, _calculator.subtract(10, 5), 0);
    29         assertEquals(5, _calculator.subtract(5, 0), 0);
    30         assertEquals(-5, _calculator.subtract(0, 5), 0);
    31         assertEquals(0, _calculator.subtract(0, 0), 0);
    32     }
    33 
    34     @Test
    35     public void testDivision() {
    36         assertEquals(0, _calculator.division(5, 0), 0);
    37         assertEquals(0, _calculator.division(0, 5), 0);
    38         assertEquals(2.5, _calculator.division(5, 2), 0);
    39         assertEquals(5, _calculator.division(10, 2), 0);
    40     }
    41 
    42     @Test
    43     public void testMultiply() {
    44         assertEquals(0, _calculator.multiply(2, 0), 0);
    45         assertEquals(4, _calculator.multiply(2, 2), 0);
    46         assertEquals(0, _calculator.multiply(0, 0), 0);
    47         assertNotEquals(2, _calculator.multiply(2, 0));
    48         assertNotEquals(0, _calculator.multiply(5.0, 0));
    49     }
    50 
    51 }

    写完测试用例后,右键CalculateTest.java 点击Run as->JUnit Test即可,下面是结果截图:

    从测试结果可以看到,add, subtract, multipy是通过测试的,division没通过。

    代码github地址:https://github.com/GreenLim/JUnitTest

  • 相关阅读:
    [leetcode]Reverse Words in a String
    [leetcode]ZigZag Conversion
    [leetcode]Gray Code
    [leetcode]Permutation Sequence
    [leetcode]Next Permutation
    [leetcode]PermutationsII
    [leetcode]Add Two Numbers
    Python与PHP通过XMLRPC进行通信
    最近发现了个js传图预览的函数和大家分享下
    百度地图api2.0体验
  • 原文地址:https://www.cnblogs.com/greensoo/p/4536844.html
Copyright © 2011-2022 走看看