使用jmock状态覆盖每个测试用例的期望

时间:2015-02-18 13:32:54

标签: java junit mocking jmock

我正在为编写集成测试的软件编写测试。即时通讯使用Jmock来模拟一些自定义请求对象,我遇到了一些问题 我想做以下事情:

setupMethod

context = new Mockery()
    {
        {
            setImposteriser(ClassImposteriser.INSTANCE);
        }
    };

    test = context.states("test");
   context.checking(new Expectations()
    {
    {
       Setup all expectations to default values 

    }
    });

然后在我的测试用例中,我想覆盖这样的特定考试:

TestCase0   
test.become("testCase0");
context.checking(new Expectations()
{
{
add new expectations with when state.is("testCase0")
that overwrites specific default expectations

}
});

当我尝试使用我的testCase0期望时,他们会返回我指定的内容 默认的期望。看起来我对状态的使用似乎什么都没做?

1 个答案:

答案 0 :(得分:1)

好的,我已经找到了如何为追随我的人解决这个问题。

您可以在每个测试用例中设置模拟,并具有特殊的期望。然后,您调用一个设置所有默认期望的方法。由于顺序,默认值不能覆盖您在测试用例中设置的期望。