繁体   English   中英

Mockito:注入模拟SessionContext

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM