我有兩個我正在測試的類(讓我們稱它們爲ClassA和ClassB)。每個都有自己的JUnit測試類(分別是testClassA和testClassB)。從另一個JUnit測試類運行JUnit測試類
ClassA的依賴ClassB的用於其正常運作,所以我想確保ClassB的運行testClassA(否則從testClassA結果就毫無意義了)之前通過了測試。
這樣做的最好方法是什麼?在這種情況下,它是一個賦值,因此如果可能的話,我需要將它保留給兩個指定的測試類。
如果testClassB的測試未全部通過,我可以從testClassA拋出一個異常嗎?這將要求testClassB以不可見的方式運行,只需將其成功/失敗報告給testClassA,而不是GUI(通過JUnit)。
我使用Eclipse和JUnit 4.8.1
更新:到目前爲止,我所管理的最好的是一個測試套件單獨的文件,如下圖所示。這仍然不是我所追求的,因爲如果ClassA未通過某些測試,它仍允許運行ClassB測試。
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({testClassA.class, testClassBCode.class})
public class testClassB {
}
在這種情況下,因爲它是一個任務,我不能依靠我的老師具有的Mockito - 本質上他們只是要我的Java包複製到自己的項目,在我的課運行測試,並在運行我的測試他們的課程。 (爲了將來的參考,顯然我想知道處理這些事情的最佳方式)。 雖然它可能不是理想的,但此刻我只是想找一種方式(如果有的話)說 '//不要運行這個測試,除非ClassB已經通過測試,而不必依賴於它的測試' 測試人員看到我的評論。 – 2010-03-22 04:03:25
我不認爲你可以在JUnit中做到這一點。您可以使用OrderedSuite插件爲JUnit,TestNG或其他測試框架指定測試順序。 – mgv 2010-03-22 04:22:38