JUnit assertFalse(true) - >成功的测试案例?

时间:2014-10-23 15:22:15

标签: java junit dependency-injection jboss-arquillian

此测试用例如何成功(即我的JUnit窗口中的绿色):

@Test public void caseForXFiles(){
    Assert.assertFalse(true);
}

此外,所有其他类型的案件都成功,尽管他们不应该。我假设我不必在使用此函数时显式启用断言,因为我不使用assert(即使启用没有区别)。即使抛出一个意外的(甚至不适当的可编译)异常也不会使测试用例变成红色。在我的第二个控制台中我得到了

Okt 23, 2014 5:18:43 PM org.jboss.arquillian.drone.webdriver.factory.remote.reusable.ReusedSessionPernamentFileStorage readStore
Information: Reused session store is not available at C:\Users\xx\.drone-webdriver-session-store, a new one will be created.
Okt 23, 2014 5:18:54 PM org.jboss.arquillian.protocol.jmx.JMXMethodExecutor invoke
Schwerwiegend: Failed: de.xx.MyTest.caseForXFiles

这到底是怎么回事?我正在使用JBoss 6.2.4和Arquillian。

编辑:经过一番进一步的调查后,我发现这条线虽然不太可能,却会导致问题。我的测试用例将在JUnit中显示为绿色但未执行(尝试使用System.out.print但未显示):

@Before public void setUp() throws Exception {
    rBean.getUserId(); // a simple getter on a String field, no side effects
}

似乎在我的rBean的@PostConstruct中无法正确填充。但这导致所描述的行为对我来说似乎是个错误。

其他信息
rBean:

@Inject @CurrentUser private MyCurrentUser currentUser;
@PostConstruct private void postConstruct() {
    userId = currentUser.getUserId();
}

对象currentUser是由我无法访问的公司框架注入的。不过,我可以访问实现IUser的MyCurrentUser类(无访问权限)。最后,我想在我的Bean方法上运行具有专有注释的测试用例。我可以通过创建调用那些带注释函数的测试函数来绕过这一点,在这种情况下不会查看注释。
问题似乎是因为当前用户不能login(),某些黑暗角落的东西会去可怕的错误。

1 个答案:

答案 0 :(得分:0)

看起来,这个bug与Arquillian 1.1.4有关,并在1.1.5中修复。

另见here