我正在尝试编写一些测试来检查 GUI 是否正常运行。我的 EAR 项目分为带有 EJB(业务逻辑)和 WAR(通常是 GUI)的 jar。到目前为止,我已经编写了几个测试并且业务逻辑按需要工作。但是,我正在为功能测试进行 Arquillian 测试。
例如:我有一个登录表单,Session Scoped bean 负责使用给定的用户名和密码向 EJB 发送调用。EJB 执行整个逻辑——验证、数据库访问等,然后返回用户对象。EJB 是使用 CDI 注入的。
我想做的是模拟注入的 EJB,所以我可以简单地返回 null 或 new User 而无需数据库调用和处理。我知道我可以简单地编写一个新的模拟 ejb 类并将其添加到 ShrinkWrap 部署而不是真正的实现,但我发现使用 Mockito 是更好的解决方案。
我尝试通过 @Mock 注释来模拟它,然后在托管 bean 上使用 @InjectMocks,但这没有任何好处。我确实引用了注入模拟的托管 bean,但这不是网站调用的对象。我相信这是因为对于功能测试,我作为客户端运行测试,而模拟应该在服务器上完成......
正确的方法是什么?