1. 使用Junit的最佳实践:
a) 新建一个名为test的source foler,用户存放测试类源代码
例1:被测试类源代码
package com.ebuair.junit;
public class Calculator {
public int add(int x, int y){
return x + y;
}
public int substract(int x,int y){
return x - y;
}
public int multiply(int x,int y){
return x * y;
}
public int devide(int x,int y){
return x/y;
}
}
例2.测试类元代码
package com.ebuair.junit;
import junit.framework.Assert;
import junit.framework.TestCase;
/**
*测试类必须要继承于TestCase父类
*在junit3.8中,测试方法需要满足如下规则:
*1.public的
*2.void的
*3.无方法参数
*4.方法名称必须以test开头
*/
public class TestCaculator extends TestCase{
private Calculator calculator;
@Override
public void setUp() throws Exception {
// System.out.println("setup start");
calculator = new Calculator();
}
@Override
public void tearDown() throws Exception {
// System.out.println("teardown start");
}
public void testAdd(){
// Calculator calculator = new Calculator();
int result = calculator.add(1, 2);
Assert.assertEquals(3, result);
}
public void testsubstract(){
// Calculator calculator = new Calculator();
int result = calculator.substract(1, 2);
Assert.assertEquals(-1, result);
}
public void testMultiply(){
// Calculator calculator = new Calculator();
int result = calculator.multiply(1, 2);
Assert.assertEquals(2, result);
}
public void testDevide(){
// Calculator calculator = new Calculator();
int result = calculator.devide(1, 2);
Assert.assertEquals(0, result);
}
// public void testDevideDevideByZero(){
// Calculator calculator = new Calculator();
// int result = calculator.devide(5, 0);
//
// }
<pre name="code" class="java">// public static void main(String[] args) {
// junit.textui.TestRunner.run(TestCaculator.class);//文本命令行方式运行
// }
}
b) 目标类与测试类应该位于同一个包下面,这样测试类就不必导入源代码所在的包,因为他们位于同一个包下面
c) 测试类的命名规则:假如目标类是Calculator,那么测试类应该命名为TestCalculator或者CalculatorTest
d) Junit的口号:keep thebar green to keep the code clean
e) Junit:测试不是为了证明您是对的,而是为了证明您没有错误。
2. 测试用例(Test Case)是单元测试的一个很重要的方面。
3. 单元测试主要是用来判断程序的执行结果与自己期望的结果是否一致。
4. 测试类必须要继承于TestCase父类, 在junit3.8中,测试方法需要满足如下规则:
public的
void的
无方法参数
方法名称必须以test开头
5. TestCase之间一定要保持完全的独立性 ,不允许出现任何的依赖关系。
6. 我们不能依赖于测试方法的执行顺序。
7. DRY(Don’t RepeatYourself)
8. 关于setup和tearDown方法的执行顺序:
a)setup b)testAdd c)tearDown