首先,我密集地谷歌了一下,根据http://jglue.org/cdi-unit-user-guide/在单元测试中生产注入的东西应该可以正常工作。
我的设置:
@RunWith(CdiRunner.class)
public abstract class CdiUnitBaseTest extends DBUnitBaseTest {
@Produces
public EntityManager em() {
return em; //field from base class filled @BeforeClass
}
@Produces
public Logger logger() {
return LogManager.getLogger();
}
}
public class SurveyBeanTest extends CdiUnitBaseTest {
@Inject
private SurveyBean bean;
@Test
public void surveyWithoutParticipation() {
Survey s = new Survey();
s.setParticipation(new ArrayList<Participation>());
boolean result = this.bean.hasParticipated("12ST", s);
Assert.assertFalse(result);
}
}
@Remote(SurveyRemote.class)
@Stateless
public class SurveyBean implements SurveyRemote {
@Inject
private Logger log;
@Inject
private SurveyDao sDao;
@Inject
private ParticipationDao pDao;
...
}
例外情况:
组织。jboss。焊接例外情况。DeploymentException:包含3个异常的异常列表:
异常0:org.jboss.weld.exceptions.部署异常: WELD-001408:带限定符的类型记录器的不满意依赖@默认在注入点[BackedAnnotatedField]@注入私有at.fhhagenberg.unitTesting.beans.SurveyBean.log...
这意味着CdiRunner试图构建我的SurveyBean并注入记录器,但它找不到要注入的对象,尽管我专门在基类中生成了它(EntityManager也是如此)。
有人知道怎么解决这个问题吗?
PS:不允许添加的标签:cdi单位,jglue
您需要将生产者方法放入与DBUnitBaseTest分开的类中。此类是抽象的,不能用作CDI生产者。EM和logger的生产者方法。
这是因为具有生产者方法/字段的类本身必须是CDIBean——该类的实例由CDI在调用生产者方法之前创建。CDI不能从抽象类创建bean。而且,@Producer
注释不会被继承,因此,SurveyBeanTest
继承的方法不会被视为生产者。
它有一个servlet和一个JAX-RS资源POJO,两者都运行良好。接下来,我在与servlet和JAX-RS POJO相同的包中创建了一个类: 当我访问POJO的rest路径时,我在Glassfish日志中得到消息:
本文向大家介绍unit-testing 资产注入,包括了unit-testing 资产注入的使用技巧和注意事项,需要的朋友参考一下 示例 属性注入允许在创建类依赖关系后对其进行更新。如果要简化对象创建,但是仍然允许测试双精度测试覆盖依赖项,这可能很有用。 考虑一个需要在错误情况下写入日志文件的类。该类知道如何构造一个default Logger,但是允许通过属性注入覆盖它。但是,值得注意的ILog
我对Java EE(依赖项注入)有点陌生,我不明白为什么@inject给我的是null,但是initialcontext.dolookup确实起作用。 这是我的豆子。它只是一把刀。EntityManager的包装器 --jar(PersonData-EJB模块-包含PersonManager) --war(PersonRest-web模块-包含PersonService)
我正在尝试在我的应用程序中实现注销,因此我做了以下操作: 但是当我检查用户是否登录时,它说是: 我错过什么了吗?在使会话无效后,我是否应该获得一个新的AuthorizedUser实例(sessionScoped)? 编辑:如果有人需要,添加getHandler;)
#非技术2023笔面经# 公司:比亚迪 岗位:产品工程师 一面: 1.自我介绍 2为什么你想加入比亚迪 3给的关键词你有什么感想 4比亚迪智能驾驶这一块的理解是什么 5 智能驾驶由什么驱动 6 比赛经验,实习经验 7.你觉得自己的优势和劣势是什么 8你有什么想问我的吗 面试官很专业,准备的稍微有点不充分
一面:主打一个随意,常规自我介绍后,然后你介绍一下自己的学校,主要考察你的宣讲能力,其次就是问你懂不懂模电数电,多少分,然后我直接说不懂,学的不深,然后看到我六级过了让我来段英语的自我介绍,我直接坦白说口语不行来不了,主打一个随意。后面给我来道情景题,假如你是一个产品工程师,客户的需求我们公司现有的产品无法满足,但是研发部同时也做不出能够满足这个需求的产品,请问你怎么做,然后我巴拉巴拉一顿之后他直