java - 使用 CDI 进行测试,模拟一个 bean

标签 java java-ee-6 cdi jboss-weld weld

我想知道我是如何使用 CDI 进行测试的。和注入(inject)期间的模拟类。

如果我有课:

@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);
    }
  }
}

如果我想在测试期间模拟 ItemDao 类,当我想测试我的 ItemProcessor 时,我该怎么办?

最佳答案

框架,如 mockito,即使在使用字段注入(inject)时也可以将依赖项设置为模拟:http://docs.mockito.googlecode.com/hg/latest/org/mockito/InjectMocks.html

然而,一般来说,由于这个确切的原因,构造函数注入(inject)是首选:可测试性。

关于java - 使用 CDI 进行测试,模拟一个 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16730800/

相关文章:

java - FileHashMap <K,V> : Reuse the same hashmap

java - 如果没有 Web 层并因此没有 HTTP session ,CDI 是否有意义?

自动化任务的 Java EE 身份验证/授权

jakarta-ee - Java EE 企业 JavaBeans 开发人员

java - 使用 USB 电缆打印问题

java - Spring 声明回滚的例子?

Java EE 6 和单例

java - 阿奎利安和 CDI

dependency-injection - 是否有任何简单的方法可以用 dagger2 替换 Guice 中的 DI 实现

java - 检查设备是否有SIM模块