簡體   English   中英

使用CDI測試,模擬Bean

[英]Testing with CDI, mocking a bean

我想知道我如何使用CDI進行測試。 以及注入期間的模擬課程。

如果我上課:

@Named
@RequestScoped
public class ItemProcessor {

  @Inject
  private ItemDao itemDao;


  public void execute() {


    List<Item> items = itemDao.fetchItems();
    for (Item item : items) {
        System.out.println("Found item " + item);
    }
  }
}

當我想測試我的ItemProcessor時,如果我想模擬ItemDao類怎么辦?

像mockito一樣,框架也可以將依賴項設置為模擬項,即使使用字段注入也是如此: http : //docs.mockito.googlecode.com/hg/latest/org/mockito/InjectMocks.html

但是,一般而言,出於以下確切原因,首選構造函數注入:可測試性。

例如,您可以使用CDI“替代方案”。

@Alternative
public class TestCoderImpl implements Coder { ... }

現在,僅當在beans.xml中聲明了該bean作為替代時,才使用此bean。

<alternatives>
    <class>package.TestCoderImpl</class>
</alternatives>

更多信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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