![](/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.