6

我一直在用 Spring 在 Junit4 中编写测试代码,我得到了这个有趣的行为:

如果我的测试是这样通过的,那么一切都很好:

@Test
public void truthTest(){

    assertTrue(true); //Ok

}

但是,如果我的测试失败:

@Test
public void truthTest(){

    assertTrue(false); //ERROR

}

然后,我收到的不是测试失败,而是丑陋而神秘的堆栈跟踪,就是这样:

http://pastie.org/429912

抱歉这个丑陋的转储,但它是我必须解释问题的唯一数据(我“粘贴”它以提高可读性)

我真的很疑惑,有没有人遇到过这种问题?提前致谢!

4

3 回答 3

12

http://jira.springframework.org/browse/SPR-5145

这是 spring-test 2.5.x 的一个已知问题。它与 JUnit 4.5 不兼容。使用 4.0-4.4。

或者您可以尝试问题跟踪器中的补丁。

于 2009-03-28T19:53:53.193 回答
1

我在编写 Spring JUnit 测试时遇到了同样的问题。就像网上的很多帖子一样,只有两种选择

1) 保持最新的 Spring 版本并使用最新版本的 JUnit 或 2) 保留当前的 ​​Spring 版本并使用 JUnit 4.4 或更低版本。

我选择了选项 #2,我们将 Spring 版本保留为 2.5 并下载了 JUnit 4.4。之后一切正常。

另外需要注意的一点是,如果您的项目,即您正在编写测试的项目 A 依赖于另一个具有另一个 Spring 版本的项目 B,您也会收到类似的错误。我很难学会。

-普拉桑特

于 2012-01-31T17:58:50.863 回答
0

如果您将 AssumptionViolatedException 导入您的测试类怎么办?

看起来它找不到引发适当异常的类。

于 2009-03-28T17:11:43.287 回答