@Inject
TestNGテストケースでアノテーションを使用したいと思います。テストは、リモートのJBossAS6インスタンスでArquillianによって実行されます。テストは基本的に次のようになります。
テストケース
public class WorksheetControllerTest extends Arquillian {
@PersistenceContext
@Produces
@Default
EntityManager em;
@Inject
private UserTransaction utx;
@Deployment
public static WebArchive createTestArchive() {
return ShrinkWrap
.create( WebArchive.class, "test.war" )
.addClasses( SomeClass.class )
.addAsWebInfResource( new ByteArrayAsset( "<beans />".getBytes() ), ArchivePaths.create( "beans.xml" ) )
.addAsResource( "persistence-test.xml", "META-INF/persistence.xml");
}
//@BeforeClass
//@BeforeTest
@BeforeMethod
public void initTestData() throws Exception {
// ...
utx.begin();
em.persist( someEntity );
utx.commit();
}
@Test
public void testGetEmployeeFromTimesheet() throws Exception {
// ...
}
}
いつ働くか...
initTestData()
単一のテストメソッドでメソッドを手動で呼び出す場合、使用するリソースを適切に注入しています。
動作しないとき...
上記のアノテーション(、、、)のいずれかを使用すると@BeforeClass
、@BeforeTest
注入@BeforeMethod
されたすべてのリソースがnull(utxとem、およびテストしたい他のクラス)であるため、テストケースは失敗します。
だから、私は自分自身とあなたの人々に尋ねています:そこで何が悪いのですか?
よろしく、セバスチャン