我已经搜索了它,但似乎很难找到关于模拟依赖注入对象(EJB 3.0)的主题。
public class MyTestBean
{
@EJB
ILoginService mLoginService;
public void doLogin() {
if (!mLoginService.login(name, pass)) {
// fehler
}
}
使用openEJB运行测试时,我想让LoginService.login(name,pass)返回true。有没有办法模拟LoginService bean?
(目前login-methode使用了一些我无法在测试中模拟的JAAS东西。)
答案 0 :(得分:3)
可以看看Mockito。您可以在setter上应用@EJB注释,并在测试中注入模拟的LoginService。
答案 1 :(得分:1)
另一个选择是简单地提供ILoginService接口的第二个实现。第二个实现是mock,但是没有必要使用特殊的Mock库或支持。
你把这个实现放在一个特殊的源文件夹中,通常称为test。然后构建部署脚本,以便在正常构建时忽略此测试文件夹。当您进行单元测试并构建存档以进行测试时,您明确地从测试源文件夹中包含Mock实现。