需要测试的代码见 junit 4.0,完善下上次一个除法测试的代码
package JunitExample; public class DivideCalculate implements Calculate { @Override public int invoke(int... i) { // TODO Auto-generated method stub int _i = i[0]; for (int m = 1; m < i.length; m++) { if(i[m]==0) { throw new ArithmeticException("除数不能为零"); }
//若前面不判断,此处也会抛出异常,目的只是在测试的时候看到是上面的代码抛出的异常 _i /= i[m]; } return _i; } }
以下是junit3.8 测试代码:
1.除法测试
package JunitExample; import junit.framework.TestCase; /** junit 3 **/ public class CalculateTest0 extends TestCase { public void testDivide1() { Calculate c=new DivideCalculate(); int result=c.invoke(10,2); assertEquals(5,result); } public void testDivide2() { Throwable e=null; Calculate c=new DivideCalculate(); try { c.invoke(10,0); fail(); } catch (Exception er) { e=er; } assertNotNull(e); assertEquals(ArithmeticException.class, e.getClass()); assertEquals("除数不能为零", e.getMessage()); } }
2.乘法测试:3.将两个测试在一个类中执行,待续package JunitExample; import junit.framework.TestCase; import JunitExample.AddCalculate; import JunitExample.Calculate; import JunitExample.MultiplyCalculate; /** junit 3 **/ public class CalculateTest1 extends TestCase { public void testAdd() { Calculate c=new AddCalculate(); int result=c.invoke(2,3,4,5,2,-1,-5); assertEquals(10,result); } public void testMultiply() { Calculate c=new MultiplyCalculate(); int result=c.invoke(2,3,4,5,2,-1,-5); assertEquals(1200,result); } }
package JunitExample; import junit.framework.TestCase; public class TestAll extends TestCase { private void Suite() { // TODO Auto-generated method stub } }