首页 > 技术文章 > 单元测试

gxmm 2016-09-10 23:59 原文

1、判断组件的功能:通过定义应用的整体需求,然后将系统划分成几个对象,我们需要对组件的基本功能十分清楚。因此,J2EE单元测试实际上也属于设计过程的一部分。 

2、设计组件行为:依据所处理的过程,可以通过一个正规或者非正规的过程实现组件行为的设计,我们可以使用UML或者其他文档视图来设计组件行为,从而为组件的测试打下基础。 

3、编写单元测试程序(或测试用例)确认组件行为:这个阶段,应该假定组件的编码已经结束而组件工作正常,我们需要编写单元测试程序来确定其功能是否和预定义的功能相同,测试程序需要考虑所有正常和意外的输入,以及特定的方法能产生的溢出。 

4、编写组件并执行测试:首先,创建类及其所对应的方法标识,然后遍历每个测试实例,为其编写相应代码使其顺利通过,然后返回测试。继续这个过程直至所有实例通过。此时,停止编码。

  5、测试替代品:对组件行为的其他方式进行考虑,设计更周全的输入或者其他错误条件,编写测试用例来捕获这些条件,然后修改代码使得测试通过。 

6、重整代码:如果有必要,在编码结束时,对代码进行重整和优化,改动后,返回单元测试并确认测试通过。 

7、当组件有新的行为时,编写新的测试用例:每次在组件中发现故障。编写一个测试实例重复这个故障,然后修改组件以保证测试实例通过。同样,当发现新的需求或已有的需求改变时,编写或修改测试实例以响应此改变,然后修改代码。 

8、代码修改,返回所有的测试:每次代码修改时,返回所有的测试以确保没有打乱代码。 

代码: 

package lovely;

public class Calculator {

       private static int result;

// 静态变量,用于存储运行结果   

   public void add(int n) {       

   result = result + n;     

}     

public void substract(int n) {

         result = result - 1;

  //Bug:正确的应该是 result =result-n     

}    

  public void multiply(int n) {    

  }         // 此方法尚未写好     

public void divide(int n) {      

    result = result / n;     

}     

public void square(int n) {

         result = n * n;    

  }     

public void squareRoot(int n) {  

        for (; ;) ;           //Bug : 死循环    

  }     

public void clear() {   

  // 将结果清零  

        result = 0;  

    }     

public int getResult() {        

  return result;  

    }

 }

首先将JUnit4单元测试包引入这个项目:在该项目上点右键,点“属性”

在弹出的属性窗口中,首先在左边选择“Java Build Path”,然后到右上选择“Libraries”标签,之后在最右边点击“Add Library…”按钮

然后在新弹出的对话框中选择JUnit4并点击确定,如上图所示,JUnit4软件包就被包含进我们这个项目了。

第三步,生成JUnit测试框架:在Eclipse的Package Explorer中用右键点击该类弹出菜单,选择“New à JUnit Test Case”。

在弹出的对话框中,选择new junit4 test,  set up

  点击“下一步”后,系统会自动列出你这个类中包含的方法,选择你要进行测试的方法。此例中,我们仅对“加、减、乘、除”四个方法进行测试。选择相应选项

之后系统会自动生成一个新类CalculatorTest,里面包含一些空的测试用例。你只需要将这些测试用例稍作修改即可使用。完整的CalculatorTest代码如下:

package lovely;

import static org.junit.Assert.*;

import org.junit.Before; import org.junit.Test;

public class CalculatorTest {

 @Before  public void setUp() throws Exception {  }

 @Test  public void testAdd() {   fail("尚未实现");  }

 @Test  public void testSubstract() {   fail("尚未实现");  }

 @Test  public void testMultiply() {   fail("尚未实现");  }

 @Test  public void testDivide() {   fail("尚未实现");  }

}

}

第四步,运行测试代码:按照上述代码修改完毕后,我们在CalculatorTest类上点右键,选择“Run As à JUnit Test”来运行我们的测试。

最后结果很正确,但是结果截图怎么都插入不进博客中,我也表示很崩溃

 

推荐阅读