让我们来看看下面的课程:
class X {
public void execute(Data[] data) {
for (Data d : data) {
MyExecutor e = new MyExecutor(d);
e.execute();
}
}
}
这很简单,但如果使用 Mockito 则完全不可测试。解决方案很简单:将 ExecutorFactory 和DI引入 X 。
但这意味着,要实现新功能而不是四个类,你需要编写8,再加上测试......简而言之,简单的事情就变成了地狱。
问题:如何重新考虑上面的示例以保持开发/测试简单,但仍然耐用?
更新: MyExecutor 与线程和 ExecutorService 无关。它只是一些消耗 d 的类,但不会以任何方式更改数据。