2009-11-02 49 views

回答

4

檢查您是否使用JUnit3亞軍。

打開'運行配置'爲您測試,並在Test選項卡上確保您有JUnit 4選擇爲您的測試運行。恕我直言,如果您正在爲JUnit4加裝測試套件,只需放棄對JUnit3的支持即可。

順便說一句,如果切換到「JUnit 4中的賽會仍執行舊JUnit3類(你不必@Test註釋添加)。

2

測試擴展junit.framework.TestCase被認爲是由JUnit4亞軍JUnit3式測試。有關更多詳細信息,請參見the source codeAllDefaultPossibilitiesBuilder

您可以強制JUnit4將類型擴展爲TestCase作爲JUnit4樣式測試,通過使用@RunWith(JUnit4.class)註解類,但您幾乎肯定不想這樣做。如果你這樣做,你的測試類仍然繼承junit.framework.TestCase的所有方法,但這些方法不會被調用。換句話說,你會繼承很多的東西。

即使在測試中,繼承仍然是一種糟糕的共享代碼的方式。如果可以將共享代碼放在另一個類中,並直接從測試類中委託,請執行此操作。

如果您使用JUnit 4.7或更高版本,Rules提供另一種共享代碼的方式。規則可能受測試行爲影響或可能影響測試行爲。

在極少數情況下,多個JUnit4測試類所需的共享代碼可以在Runner中共享,但由於測試類只能指定一個跑步者,因此跑步者與基類有許多相同的缺點。

4

測試延伸junit.framework。 TestCase被JUnit4跑步者認爲是JUnit3式的測試。這是對的。

要進行@Test註釋,您需要不是擴展junit.framework。 TestCase和@Test註釋工作正常

相關問題