我不知道为什么,但我总是这样写我的JMock测试:
@Test
public void testMyThing() throws Exception {
mockery.checking(new Expectations() {{
oneOf(mockObj).foo();
}});
testObj.bar(); // calls mockObj.foo()
mockery.assertIsSatisfied();
}但是,当有许多测试时,将assertIsSatisfied转移到拆卸是更好的做法吗?
@After
public void tearDown() throws Exception {
mockery.assertIsSatisfied();
}发布于 2011-08-24 06:47:13
推荐的方法是使用JMock运行器。用注解这个类
@RunWith(JMock.class)
public class TestClass {这将在测试生命周期中的正确位置调用断言。Teardown不是正确的位置,因为失败可能不会被正确报告,并可能会扰乱其他清理。
我们在存储库中也有一个mockery规则,它与新的@Rule基础设施一起工作。
发布于 2011-07-08 20:58:47
是的,我倾向于在拆卸的时候做。它通过删除@After中的样板,将各个测试方法的重点放在它们实际测试的内容上-对我来说,测试尽可能具有表现力和可读性是至关重要的。
实际上,我有时会更进一步,使用一个为我处理Mockery的JMockSupport基类(以及提供方便的mock(...)实现)。当然,这只是一种便利,并不像在JUnit 3中那样的要求。
https://stackoverflow.com/questions/6624709
复制相似问题