是否可以为模拟对象赋值。例如:
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消息,该方法在我正在测试的方法的末尾验证对象。
答案 0 :(得分:2)
这是我一直在寻找的答案:
答案 1 :(得分:1)
您需要添加一个Expectation,使得mock方法返回您期望的值:
allowing (myMockObject).getId(); will(returnValue("someId"));
这将导致getId返回您期望的值,并且由于它正在使用允许调用计数,因此如果未调用它将不会导致测试失败。