(MockEJB)从容器内测试中获取一个模拟的实体bean

时间:2011-07-13 19:09:34

标签: java unit-testing ejb ejb-2.x

我正在使用mockejb框架来模拟内存中的实体bean,我进行查找,mockejb为我带来了真实实体的代理。那是有效的。

但是我需要从容器JNDI获取一个Session Bean来“理解”它。我的意思是,当Session Bean查找实体Bean时,我希望它接收我嘲笑的bean,而不是数据库中的bean。

我无法模拟这个Session Bean,因为在我试图模拟的方法中,有一个查找实体bean所以,我需要这个方法正常执行但是在查找时接收模拟的bean。

[UPDATE] 关于我的开发环境的信息: 我正在使用IBM RSA 7.5,IBM Websphere 6.1, 我有一个使用Cactus在容器中运行的Web测试项目,我的类路径中的最后一个库是:

  • 仙人掌1.7.2.jar
  • CGLIB的节点p-2.1_3.jar
  • 公地HttpClient的-2.0.2.jar
  • 共享记录-1.0.4.jar
  • powermock-EasyMock的-1.3.9-full.jar
  • 的junit-3.8.1.jar
  • mockejb.jar

Obs。:我已经使用jUnit4更改为最新的powermock版本,并尝试仅使用EasyMock 3.0,并尝试使用EasyMock 2.x及其类扩展。这些都没有奏效。真正引起我兴趣的是EasyMock docs上提到的DefaultInstantiator配置:http://easymock.org/EasyMock2_4_ClassExtension_Documentation.html。我想知道这是不是我的情况(不支持JVM),我无法使它工作。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

“我无法模拟这个会话Bean,因为在我试图模拟的方法中,有一个对实体bean的查找,所以,”

你不能使用类似PowerMock的东西来“伪造”查找吗?喜欢替换方法等。

这是我最近遇到的事情: http://dave00ster.blogspot.com/2011/07/powermock-static-method-replace.html

希望这有帮助, dave00