junit基础篇、中级篇-实例代码

时间:2023-03-09 17:57:10
junit基础篇、中级篇-实例代码

学习文章:

http://blog.****.net/andycpp/article/details/1327147

http://wenku.baidu.com/link?url=C27gDEj0l-AyPuyUOOYJaezxGF-U-mozQbjlA-R9apKXdw8h-GV3VoPzS4P4WADISon7615JCLfSpMjtuiqIVcBWJ0o7icgKk_2Qi2jF0yq

实例代码目录结构:

junit基础篇、中级篇-实例代码

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忽略运行

junit基础篇、中级篇-实例代码

执行单个用例:

选中用例,右键点击“Run”

junit基础篇、中级篇-实例代码