[英]Mockito: Inject mock SessionContext
使用Mockito测试EJB3。 我试图弄清楚如何在不更改访问权限的情况下注入模拟SessionContext。
通过@Resource
注入SessionContext,如下所示:
@Resource
protected void setSessionContext(SessionContext sessionContext)
{
this.sessionContext = sessionContext;
}
我确实阅读了以下答案,展示了如何使用jmockit进行此操作: 模拟注入SessionContext
有没有办法在Mockito中做同样的事情?
另外,我阅读了有关Mockito和私有成员变量的以下答案,这些答案暗示应重构代码(设置方法或构造函数参数): https : //stackoverflow.com/a/8995712
将setSessionContext
更改为public感觉不对,更改了应用程序代码,以便在EJB及其子代之外不能真正使用SessionContext
进行设置时,可以使用模拟框架对其进行测试。
如果有人有任何想法或建议,我将不胜感激。 先感谢您。 :-)
您可以使用Whitebox.setInternalState,它使用反射在对象内部分配变量。
Whitebox.setInternalState(target, field, value)
target-目标对象
field-字段的字符串名称,在您的情况下为“ sessionContext”
value-模拟SessionContext。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.