您好我正在嘗試爲Java EE 7應用程序測試我的Service和Dao層。Daqu和Arquillian服務的JUnit測試
所以我尋找測試解決方案遵循使用Arquillian與junit測試和野蠅遠程依賴的教程。
相對於實現已經產生,下面我帶的Arquillian JUnit測試道和服務接口:
@RunWith(Arquillian.class)
public class GenericServiceTest {
@Inject
private EmployeeService employeeService;
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap
.create(JavaArchive.class)
.addAsManifestResource("META-INF/persistence.xml",
"persistence.xml")
.addClasses(EmployeeDao.class, EmployeeDaoImpl.class,
EmployeeService.class, EmployeeServiceImpl.class,
Employee.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
@Transactional
public void should_crud() {
// Gets all the objects
assertNotNull(employeeService);
Employee employee = employeeService.get(new Integer(1));
assertNotNull(employee);
}
}
運行類作爲JUnit測試它不與這個錯誤的工作:
產生的原因: java.lang.Exception:「WFLYCTL0216:Management resource'[(\」deployment \「=> \」test.war \「)]'找不到'
如果已將任何類添加到ShrinkWrap中,則測試通過如下:
@RunWith(Arquillian.class)
public class GenericDaoTest {
@Inject
private EmployeeService employeeService;
@Deployment
public static JavaArchive createTestableDeployment() {
final JavaArchive jar = ShrinkWrap.create(JavaArchive.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
return jar;
}
@Test
public void should_crud() {
}
}
如何使用arquillian爲Java EE 7添加服務類實現創建工作測試?
而且我必須添加每個必須被調用的類和接口(例如所有實體,dao等類)或者只有服務接口和實現類?
非常感謝
服務器找不到部署'test.war',因爲在創建此歸檔文件時出現錯誤。因此,您需要做的第一件事是將Java EE容器的記錄器級別從_INFO_增加到_DEBUG_,以在創建部署期間查看完成錯誤。順便說一下,是否有創建Java歸檔(JAR)的特殊原因?我們通常將Web存檔(WAR)部署到Java EE容器。 –
我遵循了一些教程和Java EE7 petstore github項目中的示例https://github.com/agoncal/agoncal-application-petstore-ee7 – antonio