私は以前に Spring DI を使用したことがあり、Spring を使用せずに Spring Bean クラスをテストできることが利点の 1 つとして認識されています (簡潔にするためにインポートは省略されています)。
public class Foo {
private String field;
public void setField(String field) { this.field = field; }
public String getField() { return field; }
}
public class TestFoo {
@Test
public void test_field_is_set() {
Foo foo = new Foo();
foo.setField("Bar");
assertEquals("Bar", foo.getField());
}
}
現在、私は JSR-330 を試しています。これは、セッターを明示的に記述しないことを意味します。
これまでのところ、Hk2 を使用しています。これは、純粋に、Jersey が Hk2 に関連付けられており、他の JSR-330 実装との共存が困難になっているという逸話があるためです。
public class Foo {
@Inject
private String field;
}
@Inject アノテーションによってセッターが使用可能になるという魔法が起こることを半分期待していましたが、そうではありません。
Foo foo = new Foo();
foo.setField("Bar"); // method setField(String) is undefined for the type Foo
- フレームワークを呼び出さずに、この種の注釈付きクラスを (便利に) テストするにはどうすればよいですか?
- それができない場合、移植可能な方法でフレームワークを呼び出すにはどうすればよいですか (つまり、テスト コードを Hk2、Guice などに緊密に結合せずに)。
- それができない場合、この方法で注釈が付けられたクラスをテストするための典型的でクリーンな方法は何ですか?