非常に簡単な質問があります。Context オブジェクトを持つコマンド オブジェクトにいくつかの単体テストを書いています。このコンテキストには、内部にいくつかのドメイン エンティティがあります。
public class Context {
private DomainEntity domainEntity1;
private Dto dto1;
// getters and setters go here...
public boolean isDomainEntityValid() {
// a little bit of logic goes here
}
}
public class Command {
public void execute(Context context) {
// do its logic in here
}
}
DTO と DomainEntity には、セッターとゲッター、および非常に単純な検証メソッド ( などisFirstNameValid()
) しかありません。
Context オブジェクトにはロジックが含まれています。結局のところ、コンテキストが一貫しているかどうか、コンテキストが完全かどうかなどをチェックします。
コマンド オブジェクトを単体テストするとき、コンテキストをモック アウトする必要があることは明らかですが、エンティティと dto はどうでしょうか。私はそれらを嘲笑する必要がありますか?もしそうなら、以下のような多くのコードを実行する必要があります
doReturn(1L).when(domainEntity1).getId();
doReturn("phil").when(domainEntity1).getName();
つまり、ゲッター メソッドの多くの動作を定義する必要があります。
要するに、オブジェクトの単体テストを行うときに、ドメイン エンティティと DTO をモックする必要がありますか?