我正在寫一些JUnit測試,從第三方庫擴展一個類。超類延伸TestCase
,所以根據定義,我的子類也是如此。我可以混合使用JUnit 3和JUnit 4嗎?
在我的子類中,我編寫了測試方法,前綴爲test
,這些都會被執行。
然而,有許多原因,我們想移動到JUnit 4中(這些原因之一是,我們不希望有前綴test
測試方法)
我試圖簡單地寫我的使用JUnit 4 @Test
註釋進行新測試,但這些方法不會被執行。
例如:
public abstract class UtilityClassFromThirdPartyLibrary extends TestCase {
}
public class MyTestClass extends UtilityClassFromThirdPartyLibrary {
public void testThisMethodIsInvokedBecauseItStartsWithTest {
}
@Test
public void thisMethodDoesNotGetInvoked {
}
}
不延長的第三方測試類是不是一種選擇。 (值得注意的是,Spring的AbstractXmlFlowExecutionTests
反過來擴展了其他Spring類,最終擴展爲TestCase
。超類中的方法提供瞭如此多的設置和樣板,而不是僅僅使用JUnit 4擴展這些類將會適得其反)
如前所述,我們使用JUnit 4的@Test
註解的動機之一是它允許我們更好地爲我們的方法命名。我們的觀點是test
這個詞是多餘的,因爲該類明顯是一個測試類,並且該方法用@Test
進行了註釋。我們用BDD風格編寫我們的測試,所以我們的測試方法名稱描述了被測單元應該做什麼 - 我們的命名約定是public void shouldDoSomething()
有誰知道它是否可能混合使用擴展的測試類JUnit 3的TestCase
與使用JUnit 4的@Test
?的方法,如果是,如何?
感謝
彌敦道
我已經看到了幾個,涉及到相同的問題,所以問題,但它們與Android或測試套件,所以不如完全一樣我題。 EG:
Is it possible to mix JUnit3 and JUnit4?
https://stackoverflow.com/questions/32393330/run-junit-3-and-junit-4-tests-in-the-same-class
你將如何運行你的測試? Maven的?的IntelliJ?蝕? –
是的,應該提到,測試是作爲我們的Maven構建的一部分運行的,但也在開發人員IDE中(我們可以選擇我們的IDE,並使用IntelliJ和Eclipse) –
您是否嘗試過使用'@ RunWith'註釋[spring junit runner](http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/test/context/junit4/SpringJUnit4ClassRunner.html)? –