2010-03-21 178 views
7

我正在使用Junit 4.我的整個程序工作正常。我正在嘗試編寫一個測試用例。但有一個錯誤...Java Junit測試問題

這裏是非常基本的樣本測試

public class di extends TestCase{ 
    private static Records testRec; 
    public void testAbc() { 
     Assert.assertTrue(
      "There should be some thing.", 
      di.testRec.getEmployee() > 0); 
    } 

} 

,當我運行這個它給我的錯誤

fName can not be null 

如果我使用超做這樣的

public TestA() { 
super("testAbc"); 
} 

它工作得很好。這不是在此之前使用JUnit 3.X 我做錯了或者他們改變了它:( 很抱歉,如果我不明白

有什麼辦法沒有executre超檢查?或調用函數等等?

+0

TestAgnes是什麼?它在第一個代碼片段中沒有提及。請清除你的問題。 – Bozho

回答

16

在JUnit 4中,您無需延伸TestCase,而是使用@Test標註來標記你的測試方法:

public class MyTest { 
    private static Records testRec; 
    @Test 
    public void testAbc() { 
     Assert.assertTrue(
      "There should be some thing.", 
      MyTest.testRec.getEmployee() > 0); 
    } 
} 

作爲一個方面說明,測試在類中static成員可能會讓你的單元測試依賴於每個其他,這不是一件好事,除非喲你有一個很好的理由,我會建議刪除static限定符。

+1

感謝您的回覆。當我嘗試這樣做時,它給了我錯誤「類型不匹配:無法從測試轉換爲註釋」我應該如何避免此錯誤?它給了我,如果我使用@Test – user238384

+4

聽起來像你導入了一些其他的測試類,這不是一個註釋。確保你導入'org.junit.Test',這應該可以解決問題。 –

+0

感謝它的工作! ! ! – user238384

0

這不是你的情況,但是這個錯誤也可能意味着你的項目中有一個名爲Test.java的文件。重命名它將修復錯誤,但重構後@Test將更改爲@NewName(至少在Eclipse中),因此請記住手動將其重新更改爲@Test