我有一个将被测试代码: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