2015-12-02 83 views
1

我有一个不断失败下面的测试方法:的JUnit的assertEquals失败

/** 
* Test of averageResult method, of class MonthlyPayroll. 
*/ 
public void testAverageResult() { 
    System.out.println("averageResult"); 
    double[] MonthlySales = {4, 5, 6, 7, 8, 9}; 
    int howMany = 6; 
    double expResult = 6.5; 
    double epsilon = 1; 
    double result = MonthlyPayroll.averageResult(MonthlySales, howMany); 
    assertEquals(expResult, result, epsilon); 
    // TODO review the generated test code and remove the default call to fail. 
    fail("The test case is a prototype."); 
} 

的方法工作得很好,当我调试测试,结果和expResult都是平等的,但我得到了以下故障消息:

compile-test-single: 
Testsuite: pkgbmc.MonthlyPayrollTest 
averageResult 
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.109 sec 

------------- Standard Output --------------- 
averageResult 
------------- ---------------- --------------- 
Testcase: testAverageResult(pkgbmc.MonthlyPayrollTest): FAILED 
The test case is a prototype. 
junit.framework.AssertionFailedError: The test case is a prototype. 
at pkgbmc.MonthlyPayrollTest.testAverageResult(MonthlyPayrollTest.java:61) 

任何人都知道为什么会发生这种情况,以及如何解决它?

+3

我缺少的东西?我不明白:你在调用'失败(...)'并询问为什么你会得到一个失败的测试? – Thomas

回答

10

呼叫失败

fail("The test case is a prototype."); 

使测试失败。

注意,在任何IDE我知道你可以有(双)点击就行了

at pkgbmc.MonthlyPayrollTest.testAverageResult(MonthlyPayrollTest.java:61) 

正好让你有问题的线,这是不是你的assertEquals

+4

代码中甚至有一个* TODO *:“删除默认调用失败”;) – Thomas

+1

哦,没有意识到这是发生了什么事,从字面上看第一次测试Java和Java今天,当我一直在努力尝试解决问题时。谢谢。 – necrofish666

+0

是的,它工作,呃! – necrofish666