问题标签 [cdi-unit]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Jglue(CDI 单元)是否仍然可用?
在一些项目中,我使用 jglue 来测试 CDI 注入支持。
服务器“jglue.org”和 maven 存储库不再可访问。有谁知道会发生什么?
unit-testing - 使用 CDI Unit 和 EasyMock 进行单元测试
我有一个 CDI 项目,我想用模拟创建单元测试。为了管理模拟,我想使用 EasyMock 并使用 CDI 运行,我发现 cdi-unit 项目似乎很容易使用。
我在 CDI 上下文中使用 EasyMock 进行模拟时遇到问题。这是我的单元测试:
IStockDao 需要在测试中进行模拟,所以为了得到它,我想使用这样的 @Produces 方法(在 @AdditionalClasses 给 cdi 单元的 MockFactory 类中):
当我运行我的单元测试时,模拟在单元测试中很好,但我收到了这个错误:
java.lang.IllegalArgumentException:不是模拟:org.jboss.weld.proxies.IStockDao$-1971870620$Proxy$_$$_WeldClientProxy
这是因为 CDI 没有提供 EasyMock IStockDao 的实例,而是提供了一个代理实例,而 EasyMock 在这些方法(如重置方法)中不接受这个。
因此,我将 MockFactory 中的 @ApplicationScoped 替换为 @Dependent ,它不会代理实例,但我有一个新问题:
这个注解在每个注入点给出了一个新的模拟实例,所以我可以使用它,因为我在单元测试中有一个模拟来模拟在测试类中调用的方法。并且这个模拟实例在被测试的类中必须是相同的(@Dependent 不是这种情况)。
如何在单元测试和测试类中获得相同的实例?
谢谢。
cdi - 使用 WicketTester 和 CDI-Unit 进行单元测试在 Eclipse 中工作,但在 Maven 构建期间失败。我错过了什么?
我正在尝试使用 CDI-Unit 来测试我的 Wicket 组件,这些组件使用 CDI 进行依赖注入。测试似乎在 Eclipse 中完美运行,但在我的 Maven 构建期间失败,我似乎找不到任何提示和问题所在。
我创建了一个简单的抽象 WicketPanel
和注塑厂:
然后使用 CDI-Unit 创建了一个单元测试:
我没有包含 TestPanel,但它非常简单(而且或多或少是空的)。
当我在 Eclipse 中执行此操作时,测试以绿色通过!
当我使用 Maven 执行此操作时,我得到以下信息:
我做错了什么的任何线索?
unit-testing - 使用 CDI-Unit Jglue 对 CDI 进行单元测试
我们想使用 Jglue 框架对我们的 CDI 应用程序进行单元测试。我们使用 gradle 进行构建。
我们准备了这样的东西:
1) 测试类:
2)接口:
3)Gradle设置(我们跟着入门http://jglue.org/cdi-unit/)
4) 测试类:
当我们运行这个简单的测试时,我们总是会得到这个异常:
在 /build/reports/tests/index.html 中有:
请问有人知道如何避免这个例外吗?如果需要,我可以添加更多细节。
java - 无法注入在 persistence.xml 中声明的 EntityManager
我正在尝试开发一个(基于 Maven 的)jar 库,它可以充当我的 Java 应用程序的 DAL。
这是我的persistence.xml
文件
这是DataSource
定义,使用@DataSourceDefinition
注释完成
这是EntityManager
从persistence.xml
定义中检索的 DAO(我使用QueryDSL来简化查询定义)
另外,我在文件夹中添加beans.xml
了META-INF
文件
这是测试类(我使用CDI-Unit进行 CDI 测试)
当我运行测试时,我在测试类的标记行处得到一个 NullPointerException。此外,如果我调试测试,我可以看到类的EntityManager entityManager
字段UserDAO
是null
,所以它不是从persistence.xml
文件中注入的。
我是否遗漏了 Java 持久性/CDI 机制中的某些内容?
谢谢
编辑 1:我已将 Maven 依赖项添加到
编辑 2:按照@earthling 的建议,我在beans.xm
l 文件中添加了以下 bean 定义
beans.xml
但我在文件中收到以下错误
cvc-complex-type.2.4.a:发现以元素“bean”开头的无效内容。'{" http://java.sun.com/xml/ns/javaee ":interceptors, "http://java.sun.com/xml/ns/javaee":decorators, " http://java之一.sun.com/xml/ns/javaee ":alternatives}' 是预期的。
unit-testing - CDI 单元测试因限定符类型的依赖项异常而失败
嗨,我定义了以下限定符类型..
以及其中的两个实现。
我从客户端注入..
每件事在运行时都可以正常工作..
但是当我运行单元测试时问题就来了..
我收到以下异常..
org.jboss.weld.exceptions.DeploymentException: WELD-001408: 在注入点 [BackedAnnotatedField] @Inject @SortAndFilterType private com.collabnet.ctf.saturn.client.apps.users.ChangeUsersStatus 带有限定符的 SortAndFilterProvider 类型的依赖关系不满足。 mSortAndFilterProvider
我从这样的单元测试中调用它..它使用@RunWith(CdiRunner.class) 运行
这里出了什么问题?
junit - 使用 bean 注入进行 JUnit 测试
我正在尝试使用 JUnit 测试我的 Web 应用程序。我看到有 cdi-unit 看起来很不错或带有 JBoss 的 Arquillian(我在 Seam3,JBoss 7.1.3 上),但我无法让它工作。
一旦我尝试注入一个 bean(并且我需要为我的测试注入多个 bean),它就无法正常工作。我得到“在注入点带有限定符 [@default] 的类型 [...] 的不满意注入”。
特别是对于EntityManager
我需要注入的。是否有一些简单的插件可以添加到我的 pom 文件中以使其正常工作?
谢谢 !
cdi - 如何从 CDI 单元扫描中排除类?
我正在使用 CDI 单元运行器运行测试,并希望排除某些类(因为它们作用于 CDI 事件)。我试过 beans.xml:
但 CDI 单元似乎忽略了它。那么用 CDI-unit 排除类的正确方法是什么?
java - CDI-Unit @Produces 不工作
首先,我在 Google 上进行了密集搜索,根据http://jglue.org/cdi-unit-user-guide/生成要注入单元测试的东西应该可以正常工作。
我的设置:
例外:
org.jboss.weld.exceptions.DeploymentException:异常列表有 3 个异常:
异常0:org.jboss.weld.exceptions.DeploymentException:WELD-001408:在注入点[BackedAnnotatedField] @Inject private at.fhhagenberg.unitTesting.beans.SurveyBean.log ...
这意味着 CdiRunner 尝试构建我的 SurveyBean 并注入记录器,但它找不到要注入的对象,尽管我专门在基类中生成它(EntityManager 也是如此)。
有人知道如何解决这个问题吗?
PS:我不允许添加的标签:cdi-unit,jglue
maven - Java EE JUnit 在使用 EJB 时无法与 CDI-Unit 一起使用
我正在使用 CDI-Unit JARhttp://jglue.org/cdi-unit/
以便能够在我的 JUnit 4 测试中使用 CDI,我已经注入了我的 EJB 并调用了一个方法来持久化一个Client
对象,但是我收到以下错误:
我的无状态 EJB (OperationsEJB.java):
我的 JUnit 测试:
我没有使用 Maven,我已经下载了weld-se-core-2.3.0.Final.jar
,但我遇到了另一个错误:
编辑 :
现在我正在使用 Maven,这是我的 JUnit 测试代码:
OpTest.java:
这是我的 EJB:
当我运行测试时,我收到此错误:
JUnit 日志中显示的错误是:
先感谢您。