将属性设置为模拟对象jmock

时间:2010-09-29 13:41:45

标签: java unit-testing junit jmock

是否可以为模拟对象赋值。例如:

myMockObject = context.mock(MyObject.class);

myMockObject.setId("someId");

我正在测试的方法到达最后,但最后有一个验证该对象的方法,因此没有id的对象被认为是无效的。我还能做些什么吗?

我可以以某种方式指定确定我期待这个例外,但无论如何都要通过测试吗?

我找到了这个链接,但我找不到解决方案:

http://www.jmock.org/yoga.html

我希望logger能够使用消息字符串抛出验证异常,有没有人有过这方面的经验?

我试过了:

context.checking(new Expectations() {
            {

allowing(logger).error(with(exceptionMessage));

    }
        });

注意验证方法抛出exceptionMessage消息,该方法在我正在测试的方法的末尾验证对象。

2 个答案:

答案 0 :(得分:2)

这是我一直在寻找的答案:

http://www.jmock.org/throwing.html

答案 1 :(得分:1)

您需要添加一个Expectation,使得mock方法返回您期望的值:

allowing (myMockObject).getId(); will(returnValue("someId"));

这将导致getId返回您期望的值,并且由于它正在使用允许调用计数,因此如果未调用它将不会导致测试失败。