好吧--我们来点真格的--将写一个正确'average()'方法。
public static double average (List l) { Iterator iter = l.iterator(); int sum = 0; while (iter.hasNext()) { Integer num = (Integer) iter.next(); sum + = num.intValue(); } return sum/l.size(); } |
而现在……
java - CP junit.jar;. junit.textui.TestRunner org.dneary.math.test.MathOpsTest
..
Time: 0,01
OK (2 tests)
哇哦!
但是在相同的时间内,这不是一个好的测试。我们来尝试更难一些的:
public void test_average_multiple () { Vector nums = new Vector(); nums.add(new Integer(3)); nums.add(new Integer(6)); assertTrue(MathOps.average(nums) == 4.5); } |
然后我们返回测试……
ava -cp junit.jar;. junit.textui.TestRunner org.dneary.math.test.MathOpsTest
... F
Time: 0,01
There was 1 failure:
1)
test_average_multiple(org.dneary.math.test.MathOpsTest)junit.framework.AssertionFailedError At
org.dneary.math.test.MathOpsTest.test_average_multiple(MathOpsTest.java:26)
FAILURES!!!
Tests run: 3, Failures: 1, Errors: 0
这次我们在看到有什么错多了点小麻烦。当然,我们可以在我们的测试中添加一个println()来检查发生了什么……
System.out.println ("Average: "+ MathOps.average(nums)); |
public static double average (List l) { Iterator iter = l.iterator(); double sum = 0; while (iter.hasNext()) { Integer num = (Integer) iter.next(); sum + = num.intValue(); } return sum/l.size(); } |