JMock断言在TearDown中满意吗?

Pau*_*zie 6 java junit unit-testing jmock

我不知道为什么,但我总是写这样的JMock测试:

@Test
public void testMyThing() throws Exception {
    mockery.checking(new Expectations() {{
        oneOf(mockObj).foo();
    }});
    testObj.bar(); // calls mockObj.foo()
    mockery.assertIsSatisfied();
}
Run Code Online (Sandbox Code Playgroud)

但是,当有很多测试时,是否更好地进行assertIsSatisfied拆卸?

@After
public void tearDown() throws Exception {
    mockery.assertIsSatisfied();
}
Run Code Online (Sandbox Code Playgroud)

Ste*_*man 5

建议的方法是使用JMock运行程序.用.注释类

@RunWith(JMock.class)
public class TestClass {
Run Code Online (Sandbox Code Playgroud)

这将在测试生命周期中的正确位置调用断言.拆解不是正确的地方,因为失败可能无法正确报告,并可能搞乱其他清理工作.

我们在存储库中也有一个与新的@Rule基础结构一起使用的嘲弄规则.