簡體   English   中英

EJB測試和Arquillian-Struts + JEE6 + EJB3

[英]EJB test & Arquillian - Struts + JEE6 + EJB3

我在使用Jboss EAP 6.1 + EJB 3 + Struts的舊系統中工作...我想為此系統編寫測試...我正在研究Arquillian,但沒有CDI和較舊的技術,我找不到任何示例...我想測試這個舊系統,並且有EJB,我需要使用容器...

您認為Arquillian對我的情況有用嗎? 用這種技術測試EJB的最佳方法是什么?

謝謝。

您可以輕松地自底向上測試系統,而無需Arquillian。 您可能要編寫三種測試。

  1. 單元測試
  2. 整合測試
  3. 系統測試
  4. 功能測試

功能測試是手動的。

您編寫的單元測試沒有任何容器,因為您是在方法級別進行測試。

集成測試可能不使用任何容器,您可以在某些情況下模擬容器的行為:

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM