Java JMock断言在拆卸中得到了满足?
我不知道为什么,但我总是这样编写JMock测试:Java JMock断言在拆卸中得到了满足?,java,unit-testing,junit,jmock,Java,Unit Testing,Junit,Jmock,我不知道为什么,但我总是这样编写JMock测试: @Test public void testMyThing() throws Exception { mockery.checking(new Expectations() {{ oneOf(mockObj).foo(); }}); testObj.bar(); // calls mockObj.foo() mockery.assertIsSatisfied(); } 但是,当有很多测试时,将as
@Test
public void testMyThing() throws Exception {
mockery.checking(new Expectations() {{
oneOf(mockObj).foo();
}});
testObj.bar(); // calls mockObj.foo()
mockery.assertIsSatisfied();
}
但是,当有很多测试时,将assertessatifized
移动到分解位置是否更好
@After
public void tearDown() throws Exception {
mockery.assertIsSatisfied();
}
是的,我倾向于在流泪的时候做。它通过在之后将样板文件删除到@中,将各个测试方法的重点放在实际测试的内容上,这对我来说至关重要,因为测试尽可能具有表达性和可读性
事实上,我有时会更进一步,使用
JMockSupport
基类为我处理mockry
(以及提供mock(…)
的方便实现)。当然,这只是一种方便,决不是像JUnit3那样的要求。建议使用JMock runner。用
@RunWith(JMock.class)
public class TestClass {
这将在测试生命周期的正确位置调用断言。拆卸不是正确的位置,因为故障可能无法正确报告,并且可能会干扰其他清理
<>我们在库中也有一个嘲弄规则,它使用新的@规则基础结构。请考虑使用转轮或新规则实现。如果使用@After,则不会在测试生命周期的正确时间引发异常。