对于我们的 Web 应用程序,我们在 Resources 类中编写了大部分代码。现在我们想用带有“简单集成测试”的junit测试对web模块进行单元测试。
但是我们只能测试我们的存储库,而不能使用这种包装测试查找器和其他业务逻辑。
我们是否需要将代码从资源类移动到可以在单元测试中注入的应用程序服务?如果是,我们可以在 web 模块中编写这些服务吗?通常我们在 app 模块中编写这些服务,但在这种情况下,服务无法访问 web 中存在的查找器
您的资源类应该只包含公开应用程序的 REST API 所需的代码:没有业务逻辑、没有应用程序(用例)逻辑、没有数据访问。资源类应该只使用其他组件,如存储库、服务和查找器来实现所需的结果。
在 SeedStack 项目中,特别是如果您使用的是业务框架,建议您尊重 DDD 层模型:
您可以使用单元测试和简单的集成测试来测试这些组件中的任何一个,除了 REST 资源,因为它们依赖于 Web 运行时环境。这些只能在Web 集成测试中进行测试(使用 Arquillian)。