如何在jmock中使用状态?

时间:2012-06-21 18:20:26

标签: jmock

我正在编写一个集成测试,模拟来自前端的一系列操作。我正在设定这样的期望:

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 null对象,而不是提供的值。当我在期望之后同时写()和(...)时,我认为我做错了什么,但我不确定。

这里有什么我想念的吗?

1 个答案:

答案 0 :(得分:0)

Per Duncan的建议,答案是,这正是你使用状态的方式。我在测试中遇到另一个问题,我错误地认为与状态有关。