首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >EJB测试& Arquillian + JEE6 + EJB3

EJB测试& Arquillian + JEE6 + EJB3
EN

Stack Overflow用户
提问于 2015-06-30 20:34:36
回答 2查看 204关注 0票数 0

我在一个旧系统中工作,使用JBossEAP6.1+ EJB 3+Struts.我想为这个系统写测试..。我在研究阿基利安,但我找不到任何没有CDI和旧技术的例子.我想测试这个旧系统,我有EJB,我需要使用容器.

你认为阿基利安会对我的案子有用吗?用这种技术测试EJB的最佳方法是什么?!

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-01 15:33:10

Arquillian完全支持EJB3.0。

您可以将EJB注入到测试中。如果您使用的是更旧的不支持注入的EJB代码,您甚至可以在测试中使用inital上下文并查找EJB。我一直在彻底地使用Arquillian来测试EJB。

票数 0
EN

Stack Overflow用户

发布于 2015-06-30 21:02:11

您可以很容易地测试系统自下而上,而不需要阿基利安。您可能需要编写三种类型的测试。

  1. 单元测试
  2. 集成测试
  3. 系统测试
  4. 功能测试

功能测试是手动的。

编写单元可以在没有任何容器的情况下测试,因为您是在方法级别进行测试。

集成测试可能不使用任何容器,在某些情况下可以模拟容器行为:

代码语言:javascript
复制
@Stateless
public class Cat {

    @PostContruct
    void init() { 

        say("Meow");

    }

    public void say(String output) {

        System.out.println(output);

    }

}

编写测试非常简单:

代码语言:javascript
复制
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并指示他定期运行测试。

不需要胖胖的阿基利安:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31148031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档