[英]How to inject with EJB correctly in JEE and test with Arquillian using Junit?
[英]EJB test & Arquillian - Struts + JEE6 + EJB3
我在使用Jboss EAP 6.1 + EJB 3 + Struts的舊系統中工作...我想為此系統編寫測試...我正在研究Arquillian,但沒有CDI和較舊的技術,我找不到任何示例...我想測試這個舊系統,並且有EJB,我需要使用容器...
您認為Arquillian對我的情況有用嗎? 用這種技術測試EJB的最佳方法是什么?
謝謝。
您可以輕松地自底向上測試系統,而無需Arquillian。 您可能要編寫三種測試。
功能測試是手動的。
您編寫的單元測試沒有任何容器,因為您是在方法級別進行測試。
集成測試可能不使用任何容器,您可以在某些情況下模擬容器的行為:
@Stateless
public class Cat {
@PostContruct
void init() {
say("Meow");
}
public void say(String output) {
System.out.println(output);
}
}
編寫測試非常簡單:
String catOutput = "";
@Test public void cat_shouldSayMeow_whenInstantiated {
Cat cat = new Cat();
assertEquals("Meow", catOutput);
}
public class CatInSimulatedContainer extends Cat {
public CatInSimulatedContainer() {
super.init(); // <--- the container would run this automatically after injection
}
@Override
public void say(String output) {
this.output = output;
}
}
最后,您的系統測試可以使用“真實”容器(在您的情況下為JBoss)進行測試。 您需要做的就是安裝Jenkins,並指示他定期運行測試。
無需胖乎乎的Arquillian :)
Arquillian完全支持EJB 3.0。
您可以將EJB注入測試中。 如果您使用甚至不支持注入的更舊的EJB代碼,則甚至可以使用初始上下文並在測試中查找EJB。 我已經徹底使用Arquillian測試EJB。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.