Component.getInstance(Needed.class)
Seam コンポーネントではないクラスの 1 つのコンストラクターを呼び出しています。それは問題なく動作しますが、単体テストでカバーしようとしており、取得IllegalStateException
しているのは上記の行にあります。Component.getInstance をテストでカバーする方法はありますか?
ところで、私は unitils ライブラリを使用しています...よろしくお願いします
Component.getInstance(Needed.class)
Seam コンポーネントではないクラスの 1 つのコンストラクターを呼び出しています。それは問題なく動作しますが、単体テストでカバーしようとしており、取得IllegalStateException
しているのは上記の行にあります。Component.getInstance をテストでカバーする方法はありますか?
ところで、私は unitils ライブラリを使用しています...よろしくお願いします
クラスでService Locator パターンを使用していますが、これは単体テストには適していません。Dependency Injection パターンに移行してみてください。これにより、単体テストがはるかに簡単になります。
サービス ロケーターの例:
public class MyService : Service
{
private Needed dependency;
public MyService()
{
this.dependency =
Component.getInstance(Needed.class);
}
}
依存性注入の例:
public class MyService : Service
{
private Needed dependency;
public MyService(Needed dependency)
{
this.dependency = dependency;
}
}
依存性注入を行う場合、クラスはコンテナーへの参照を持たないため (Component
この場合)、クラスの単体テストがはるかに簡単になります。