我有一個將被測試代碼:JUnit測試:靜態方法調用到測試方法
public void ackAlert(final Long alertId, final String comment) {
final AnyTask task = AnyTask.create(
"ackAlert", new Class[] { Long.class, String.class },
new Object[] { alertId, comment });
taskExecutor.execute(task);
}
我書面方式測試它:
public void testAckAlert() throws Exception {
final Long alertId = 1L;
final String comment = "tested";
final AnyTask task = AnyTask.create(
"ackAlert", new Class[] { Long.class, String.class },
new Object[] { alertId, comment });
taskExecutor.execute(task);
expectLastCall();
replay(taskExecutor);
testingObjectInstance.ackAlert(alertId, comment);
verify(taskExecutor);
}
而且我得到異常:
java.lang.AssertionError: Unexpected method call execute([email protected]): execute([email protected]): expected: 1, actual: 0
我的錯誤在哪裏?我覺得問題是在調用靜態方法創建。
蘇爾有沒有Java的隔離/模擬框架,不需要過時的記錄/重放語法? – TrueWill
真的嗎?你建議哪一個? –
我沒有在Java領域的建議;我是C#開發人員。 Java開源工具通常更成熟,所以這讓我感到驚訝。我希望Java專家可以建議一個不同的庫。 – TrueWill