SpringinActionの本を読み始めました。
私は自分の疑問が疑わしいと思うJUnitの知識を持っていません。
作成者が参照し、テストが難しいと言っているコードフラグメントがあります。
package com.springinaction.knights;
public classDamselRescuingKnight implements Knight {
private RescueDamselQuest quest;
public DamselRescuingKnight() {
quest = new RescueDamselQuest();
}
public voidembarkOnQuest() throwsQuestException {
quest.embark();
}
}
著者は次のように述べています。
DamselRescuingKnightの単体テストを作成するのは非常に難しいでしょう。このようなテストでは、騎士のembarkOnQuest()が呼び出されたときに、クエストのembark()メソッドが呼び出されたことを表明できるようにする必要があります。しかし、ここでそれを達成する明確な方法はありません。残念ながら、DamselRescuingKnightはテストされていません。
これは、作者が何を意味するのでしょうか。
ここでコードをテストするのが難しいのはなぜですか?