单元测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单元测试相关的知识,希望对你有一定的参考价值。
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”来运行我们的测试。
最后结果很正确,但是结果截图怎么都插入不进博客中,我也表示很崩溃
以上是关于单元测试的主要内容,如果未能解决你的问题,请参考以下文章