我有一個在多個操作系統上運行的客戶端 java 應用程序。我想測試一個在不同操作系統中運行時給出不同期望的邏輯。例如,當我在 Windows 上運行時,邏輯將通過,而當我在 OSX 上運行時,邏輯將引發異常。我可以為不同的操作系統編寫兩個單獨的測試并僅使用單獨的構建配置文件執行一個測試,但是是否可以編寫一個在不同操作系統下表現不同的 junit 測試。?對于 OSX,我想用異常注釋測試作為預期,對于 Windows,正常邏輯應該可以工作。在 Junit 中是否有可能在某些情況下在運行時期望有所不同?此致,索拉夫
1 回答

慕斯709654
TA貢獻1840條經驗 獲得超5個贊
您可以檢查您在System.getProperty("os.name")哪個操作系統上,然后您可以使用條件運行來排除您在特定操作系統上不需要的測試用例,例如
public class SomeTest {
@Rule
public ConditionalIgnoreRule rule = new ConditionalIgnoreRule();
@Test
@ConditionalIgnore( condition = NotRunningOnWindows.class )
public void testFocus() {
// ...
}
}
public class NotRunningOnWindows implements IgnoreCondition {
public boolean isSatisfied() {
return !System.getProperty( "os.name" ).startsWith( "Windows" );
}
}
來源:代碼仿射
添加回答
舉報
0/150
提交
取消