我正在编写一个集成测试来模拟来自前端的一系列动作。我正在设置这样的期望:
context.checking(new Expectations() {{
States state = states("service");
allowing(service).getPendingTxn();
will(returnValue(null));
when(state.isNot("has-pending-txn"));
one(service).createPendingTxn();
will(returnValue(txnId));
then(state.is("has-pending-txn"));
allowing(service).getPendingTxn();
will(returnValue(transaction));
when(state.is("has-pending-txn"));
}});
然后,被测代码按该顺序进行调用。
这对我不起作用。看起来 service.getPendingTxn() 正在返回一个 jMock 空对象,而不是提供的值。我认为当我在期望之后同时写 will(...) 和 when(...) 时,我做错了,但我不确定。
我在这里缺少什么吗?