5

现在,当我运行 Junit4 测试时,我使用@RunWith(SpringJUnit4ClassRunner.class)允许我将 Spring Beans 注入我的测试类的注释。

我想使用 JMock 2 框架(我没有实际经验),但我看到的示例需要以下@RunWith(JMock.class).

所以我的问题是我可以将 JMock 和 Spring 与我的 JUnit4 测试一起使用吗?如果可以,如何?例如,是否有一个也支持 JMock 的 Spring 测试运行器?

谢谢,

理查德

4

3 回答 3

6

context.assertIsSatisfied()您可以在测试结束时显式调用,@After例如在方法中。

jmock.org站点上,选择任何代码示例上的“其他”选项卡,文档将向您展示如何在没有 JUnit 框架集成的情况下使用 jMock。

jMock 的下一个版本将支持 JUnit 4.7 中的新“规则”机制,因此您不需要使用自定义测试运行程序。

于 2009-11-18T14:47:17.497 回答
1

我想你也可能在这里遗漏了一点。对于单元测试,我希望精确控制被测对象的构造方式,这意味着将已知实例作为协作者传递。换句话说,如果我需要一个对象,那么我会在测试中创建它并传递它。调用 Spring 似乎有点矫枉过正。

另一方面,如果我正在做某种集成测试,我将需要 Spring bean,以查看整个事物如何连接在一起或针对第三方组件进行测试。

于 2010-01-22T13:01:13.977 回答
1

如果问题与 相关@RunWith,您可以改用JMockit Expectations API。它与 jMock 类似,期望也记录在new Expectations() {...}块内,但不需要使用@RunWith(也不需要基测试类)。此外,没有context.checking(...)包装期望块的方法调用。

于 2009-12-27T23:07:31.403 回答