来自 Spring in Action 的代码:
public class DamselRescuingKnight implements Knight {
private RescueDamselQuest quest;
public DamselRescuingKnight() {
this.quest = new RescueDamselQuest();
}
public void embarkOnQuest() {
quest.embark();
}
}
public class BraveKnight implements Knight {
private Quest quest;
public BraveKnight(Quest quest) {
this.quest = quest;
}
public void embarkOnQuest() {
quest.embark();
}
}
public class BraveKnightTest {
@Test
public void knightShouldEmbarkOnQuest() {
Quest mockQuest = mock(Quest.class);
BraveKnight knight = new BraveKnight(mockQuest);
knight.embarkOnQuest();
verify(mockQuest, times(1)).embark();
}
}
Run Code Online (Sandbox Code Playgroud)
我理解依赖注入的使用,它允许我们在不修改依赖代码的情况下切换实现。
这本书说“编写单元测试非常困难......”。
但是,我无法理解没有依赖注入的单元测试将是多么困难!我的直觉拒绝合作!
您能否开始为“DamselRescuingKnight”类和任何其他更好的示例类(没有 …