小编use*_*309的帖子

没有依赖注入的单元测试

来自 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”类和任何其他更好的示例类(没有 …

java junit spring unit-testing dependency-injection

4
推荐指数
1
解决办法
3608
查看次数

标签 统计

dependency-injection ×1

java ×1

junit ×1

spring ×1

unit-testing ×1