如何对回调逻辑进行单元测试?
2022-09-04 21:46:13
更完整的问题是,给定一个期望回调作为参数的依赖项,我如何编写一个涵盖回调逻辑的单元测试,并且仍然设法模拟依赖项?
public class DoStuff {
public void runThis(Runnable callback) {
// call callback
}
}
public class ClassUnderTest {
private DoStuff stuffToDo;
public void methodUnderTest() {
this.stuffToDo.runThis(/*a runnable with some logic*/)
}
}
在上面的示例中,我将模拟,因为我应该验证方法调用的调用和模拟输出。但是,模拟会导致回调逻辑不被测试。此外,回调逻辑似乎应该是私有的,所以我不希望直接测试它;也许这是我的误解。stuffToDo
runThis
由于回调的使用相当广泛,我希望有一种通用的方法来测试它们,但我还没有找到它。