Java JUnit假设失败理论
我在JUnitJava JUnit假设失败理论,java,junit,junit4,Java,Junit,Junit4,我在JUnit@Theory上乱搞,发现如果忽略它,假设真(假)会使理论失效 public class SnippetTest { @Test public void validateIndices() { assumeTrue(false); } } 此代码未通过测试: @RunWith(Theories.class) public class SnippetTest { @Theory public void validateIndi
@Theory
上乱搞,发现如果忽略它,假设真(假)
会使理论失效
public class SnippetTest {
@Test
public void validateIndices() {
assumeTrue(false);
}
}
此代码未通过测试:
@RunWith(Theories.class)
public class SnippetTest {
@Theory
public void validateIndices(){
assumeTrue(false);
}
}
SnippetTest.ValidateIndicates从未找到满足以下条件的参数
方法假设。违反假设:
[org.junit.AssumptionViolatedException:get:false,应为:is
真的]
但是当我使用@Test假设时,忽略它
public class SnippetTest {
@Test
public void validateIndices() {
assumeTrue(false);
}
}
这与我的观点相反
如果任何一个假设失败,数据点将被自动忽略
我遗漏了什么或做错了什么?感谢@TamasRev的评论,我发现了哪里出了问题。看起来,如果所有假设都失败了,它将无法通过测试。我的情况我张贴,我只有一个假设。 如果我使用的是
@DataPoints
,会发生什么?
这个也失败了
@RunWith(Theories.class)
public class SnippetTest {
@DataPoints
public static boolean[] data(){
return new boolean[]{false, false};
}
@Theory
public void validateIndices(boolean data){
assumeTrue(data);
assertTrue(true);
}
}
但若至少有一个假设通过,那个么测试并没有失败
@RunWith(Theories.class)
public class SnippetTest {
@DataPoints
public static boolean[] data(){
return new boolean[]{false, true};
}
@Theory
public void validateIndices(boolean data){
assumeTrue(data);
assertTrue(true);
}
}
Thanx@TamasRev为我指出了正确的方向。据我所知,数据点被忽略了,而不是理论。看起来这种行为很好,你完全正确。谢谢你!