gpt4 book ai didi

java - 注入(inject)在 Arquillian 测试中不起作用

转载 作者:行者123 更新时间:2023-12-02 02:10:41 25 4
gpt4 key购买 nike

我正在尝试使用 JavaEE 做简单的应用程序,目前我陷入了 arquillian 测试。我有一个像这样的 BookRepository 类:

package com.pluralsight.bookstore.repository;

import javax.transaction.Transactional;
import static javax.transaction.Transactional.TxType.SUPPORTS;

@Transactional(SUPPORTS)
public class BookRepository {

}

和测试类 BookRepositoryTest :

package com.pluralsight.bookstore.repository;

@RunWith(Arquillian.class)
public class BookRepositoryTest {

@Inject
private BookRepository bookRepository;

@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class)
.addClass(BookRepository.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml")
.addAsManifestResource("META-INF/test-persistence.xml", "persistence.xml");
}

@Test
public void create() {
assertNotNull(bookRepository);
}
}

运行测试结果:

    Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 9.864 sec <<< FAILURE!
create(com.pluralsight.bookstore.repository.BookRepositoryTest) Time elapsed: 0.287 sec <<< ERROR!
java.lang.NullPointerException
at com.pluralsight.bookstore.repository.BookRepositoryTest.create(BookRepositoryTest.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
...

没有任何解释。当我检查assertNotNull时,bookRepository始终为空,因此我猜注入(inject)在这里不起作用。项目结构如下所示: enter image description here

我尝试寻找答案已经有一段时间了,但我仍然在同一个地方。对于容器,我使用 Wildfly 远程运行测试,并让 WildFly 在后台运行。预先感谢您的帮助!

最佳答案

好吧,我终于成功了。显然我使用了错误的“@Inject”注释。我使用的是 arquillian one,而不是 javax one。我变了

import org.jboss.arquillian.core.api.annotation.Inject;

在我的测试用例类中

import javax.inject.Inject;

它就像一个魅力。追踪起来真的很烦人,实际上我是靠运气找到的,所以我希望这对将来的人有帮助。

关于java - 注入(inject)在 Arquillian 测试中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50080294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com