猿问

不同OS环境下对JUnit测试的不同期望

我有一个在多个操作系统上运行的客户端 java 应用程序。

我想测试一个在不同操作系统中运行时给出不同期望的逻辑。

例如,当我在 Windows 上运行时,逻辑将通过,而当我在 OSX 上运行时,逻辑将引发异常。

我可以为不同的操作系统编写两个单独的测试并仅使用单独的构建配置文件执行一个测试,但是是否可以编写一个在不同操作系统下表现不同的 junit 测试。?

对于 OSX,我想用异常注释测试作为预期,对于 Windows,正常逻辑应该可以工作。在 Junit 中是否有可能在某些情况下在运行时期望有所不同?

此致,

索拉夫


眼眸繁星
浏览 65回答 1
1回答

慕斯709654

您可以检查您在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" );  }}来源:代码仿射
随时随地看视频慕课网APP

相关分类

Java
我要回答