EJB 测试和 Arquillian - Struts + JEE6 + EJB3
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。
我在旧系统中工作,使用 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。