Может быть не важно издеваться над вашим статическим методом, в зависимости от того, что именно вы хотите проверить.Ошибка в том, что она не видит задачу, созданную в тестируемом вами методе, как задачу, которую вы передали макету.
Вы можете реализовать equals и hashCode в AnyTask, чтобы они выглядели эквивалентно.Вы также можете «захватить» переданную задачу, чтобы выполнить и проверить что-то об этом после теста.Это выглядело бы так:
public void testAckAlert() throws Exception {
final Long alertId = 1L;
final String comment = "tested";
mockStatic(AnyTask.class);
Capture<AnyTask> capturedTask = new Capture<AnyTask>();
taskExecutor.execute(capture(capturedTask));
expectLastCall();
replay(taskExecutor);
testingObjectInstance.ackAlert(alertId, comment);
AnyTask actualTask = capturedTask.getValue();
assertEquals(actualTask.getName(), "ackAlert");
verify(taskExecutor);
}
Если вы на самом деле ничего не тестируете с задачей, а просто вызывается taskExecutor.execute()
, вы можете просто заменить
taskExecutor.execute(task);
на
taskExecutor.execute(isA(AnyTask.class));
или даже
taskExecutor.execute(anyObject(AnyTask.class));