Java 如何根据机器端性运行测试?

Java 如何根据机器端性运行测试?,java,junit,Java,Junit,我做的一些测试只有在LITTLE_ENDIAN机器上才有意义 那么这可以用更干净的方式来做吗 @Test public void testSomething(){ if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) { // do your thing } else { // skip } } 如果可能的话,我希望在每次测试中都避免此检查。您应该这样做: @Test public void t

我做的一些测试只有在
LITTLE_ENDIAN
机器上才有意义

那么这可以用更干净的方式来做吗

@Test
public void testSomething(){
   if (ByteOrder.nativeOrder() == ByteOrder.LITTLE_ENDIAN) {
      // do your thing
   } else {
      // skip
   }
}
如果可能的话,我希望在每次测试中都避免此检查。

您应该这样做:

@Test
public void testSomething() {
    org.junit.Assume.assumeTrue( ByteOrder.LITTLE_ENDIAN.equals( ByteOrder.nativeOrder() );
    // more code
}
JUnit的假设是:

用于说明条件假设的一组方法 其中一个测试是有意义的。失败的假设并不意味着失败 代码被破坏,但是测试没有提供有用的信息


似乎您试图做的是说明您的测试有意义的条件。

您可以使用
@Category
按endianness对测试进行分组,然后运行相应的类别。@Aurand您能提供一个示例吗?