学习文章:
http://blog.****.net/andycpp/article/details/1327147
实例代码目录结构:
Calculator.java:
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;
}
}
CalculatorTest.java:
import static org.junit.Assert.*; import org.junit.After;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test; public class CalculatorTest { private static Calculator calculator = new Calculator(); @Before
public void setUp() throws Exception {
calculator.clear();
} @After
public void tearDown() throws Exception {
} @Test
public void testAdd() {
calculator.add(2);
calculator.add(3);
assertEquals(5,calculator.getResult());
} @Test
public void testSubstract() {
calculator.add(10);
calculator.substract(2);
assertEquals(8,calculator.getResult());
} @Ignore("Multiply() Not yet implemented")
@Test
public void testMultiply() { } @Test
public void testDivide() {
calculator.add(8);
calculator.divide(2);
assertEquals(4,calculator.getResult());
} @Test(timeout = 1000)
public void squareRoot(){
calculator.squareRoot(4);
assertEquals(2,calculator.getResult());
} @Test(expected = ArithmeticException.class)
public void divideByZero(){
calculator.divide(0);
}
}
执行结果,"failure Trace"报错或运行失败原因:
(1)squareRoot超时,报错
(2)testSubstract用例失败
(3)testMultiply忽略运行
执行单个用例:
选中用例,右键点击“Run”