在eclipse中测试,很容易可以看结果
被测试的类: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; //错误:应该是"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 (; ;) ; //错误:无限循环
}
public void clear() { //清除结果result = 0;
}
public void switchOn() { //打开屏幕,显示"hello",并报警result = 0;
//实现其它的计算器功能
}
public void switchOff() { } //显示"bye bye",报警,并关闭屏幕
public int getResult() {
return result;
}
}
测试类CalculatorTest.java
import junit.framework.TestCase;
public class CalculatorTest extends TestCase {
private static Calculator calculator = new Calculator();
@Override
protected void setUp(){
calculator.clear();
}
public void testAdd() {
calculator.add(1);
calculator.add(1);
assertEquals(calculator.getResult(),2);
}
public void testSubtract(){
calculator.add(10);
calculator.substract(2);
assertEquals(calculator.getResult(),7);//这里会测试不通过
}
public void testDivide(){
calculator.add(8);
calculator.divide(2);
assert calculator.getResult() == 5;
}
public void testDivideByZero(){
try {
calculator.divide(0);
fail();
}
catch (ArithmeticException e) { }}
public void notReadyYetTestMultiply(){
calculator.add(10);
calculator.multiply(10);
assertEquals(calculator.getResult(),100);
}
public void testSquareRoot(){
calculator.squareRoot(3);
assertEquals(calculator.getResult(), 100);//在这里死循环了
}
}
被测试的类: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; //错误:应该是"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 (; ;) ; //错误:无限循环
}
public void clear() { //清除结果result = 0;
}
public void switchOn() { //打开屏幕,显示"hello",并报警result = 0;
//实现其它的计算器功能
}
public void switchOff() { } //显示"bye bye",报警,并关闭屏幕
public int getResult() {
return result;
}
}
测试类CalculatorTest.java
import junit.framework.TestCase;
public class CalculatorTest extends TestCase {
private static Calculator calculator = new Calculator();
@Override
protected void setUp(){
calculator.clear();
}
public void testAdd() {
calculator.add(1);
calculator.add(1);
assertEquals(calculator.getResult(),2);
}
public void testSubtract(){
calculator.add(10);
calculator.substract(2);
assertEquals(calculator.getResult(),7);//这里会测试不通过
}
public void testDivide(){
calculator.add(8);
calculator.divide(2);
assert calculator.getResult() == 5;
}
public void testDivideByZero(){
try {
calculator.divide(0);
fail();
}
catch (ArithmeticException e) { }}
public void notReadyYetTestMultiply(){
calculator.add(10);
calculator.multiply(10);
assertEquals(calculator.getResult(),100);
}
public void testSquareRoot(){
calculator.squareRoot(3);
assertEquals(calculator.getResult(), 100);//在这里死循环了
}
}