![](/img/trans.png)
[英]Junit and Jmock to test Springs TransactionSynchronizationManager
[英]How to write a test in Java that checks if an object is being used in JMock or JUnit?
我正在为Java程序编写一些测试,并且需要测试是否将我的对象添加到List x的次数。
以下是假设的代码段。...
ObjectWithList objectWithList = new ObjectWithList();
JMock context = new JMock();
ObjectInterface oInterfaceMock = (ObjectInterface)context.mock(ObjectInterface.class);
context.checking(new Expectations{{
oneOf(oInterfaceMock).makeSureIamOnlyStoredSomewhereOnce();
}});
context.assertIsSatisfied(); // This will be successful if objectWithList calls add only
//once.
我不知道JUnit是否有更好的方法来测试它,任何帮助将不胜感激。 我一直在尝试Google搜索,并在Stack上搜索以前的问题,但是我没有运气。
非常感谢大家,任何帮助总是感激不尽!
我建议不要使用JMock。 您可以简单地编写一个计算列表包含一个对象的次数的函数:
public int getCount(List<?> list, Object object) {
int count = 0;
for (Object element : list) {
if (object.equals(element)) {
count++;
}
}
return count;
}
还有其他可能的实现,但这显然是正确的。 接下来,您可以编写一个断言:
public void assertAppearsNTimes(List<?> list, Object object, int n) {
if (n == getCount(list, object)) {
return;
}
fail("Object " + object + " does not appear in list "
+ n + " times: " + list);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.