0

对于我们的 Web 应用程序,我们在 Resources 类中编写了大部分代码。现在我们想用带有“简单集成测试”的junit测试对web模块进行单元测试。

但是我们只能测试我们的存储库,而不能使用这种包装测试查找器和其他业务逻辑。

我们是否需要将代码从资源类移动到可以在单元测试中注入的应用程序服务?如果是,我们可以在 web 模块中编写这些服务吗?通常我们在 app 模块中编写这些服务,但在这种情况下,服务无法访问 web 中存在的查找器

4

1 回答 1

0

您的资源类应该只包含公开应用程序的 REST API 所需的代码:没有业务逻辑、没有应用程序(用例)逻辑、没有数据访问。资源类应该只使用其他组件,如存储库、服务和查找器来实现所需的结果。

在 SeedStack 项目中,特别是如果您使用的是业务框架,建议您尊重 DDD 层模型:

  • 领域层是通过包含领域对象(实体和值对象)的聚合和领域服务来表达业务的地方。
  • 应用层负责驱动应用的工作流,通过应用服务执行系统的用例。这一层也可以通过单元测试和简单的集成测试来测试。
  • 接口层处理与其他系统的交互。在您的情况下,这是使用 REST 资源完成的。当需要查询数据库时,这些资源可以依赖查找器。

您可以使用单元测试和简单的集成测试来测试这些组件中的任何一个,除了 REST 资源,因为它们依赖于 Web 运行时环境。这些只能在Web 集成测试中进行测试(使用 Arquillian)。

您可以在此处此处找到通过简单集成测试测试的查找器示例。

于 2016-10-19T08:56:01.517 回答