首页 文章

Lagom框架中的单元测试范例是什么?

提问于
浏览
1

我是拉格姆世界的新手 . 我有一个方案可以使用 unit tests . 我在Lagom / Java框架和Cassandra数据库下工作 . 我有两种不同的服务:

  • 设备服务

  • 用户服务

我需要一个智能访问场景 . 用户必须注册其设备才能获得访问权限 . 此机制由设备服务中的WBS connect()管理 . 所以这个WBS处理:

  • 如果设备不可用:它将其存储在DB中(出于安全原因)并且不允许访问

  • 如果设备已注册:它会记录访问日期并授权访问

我的实现准备就绪,它运行正常 . 但我的问题是如何在单元测试方面处理这个问题 . 特别是对于自动化访问方案,因为在测试开始时,我没有在我的DB /持久性中注册设备 .

  • 我是否需要调用WBS Add()将设备添加到我的数据库/持久性中,然后调用WBS connect()来模拟访问权限?

  • 是否有解决方案在不依赖数据库的情况下运行WBS connect()?

  • 如果我的WBS依赖于另一个服务(用户服务),如何管理单元测试?我是否必须在设备服务的单元测试中重新实施用户服务?

1 回答

  • 1

    最好的我可以告诉,Lagom团队doesn't believe in traditional unit testing服务;但是,有一些单元式的方法来测试Lagom服务 . 传统上,这是如何在"unit"级别上规定测试的:

    域对象测试

    测试外部命令,事件和代理

    持久实体测试

    测试持久化实体尝试处理实体命令时会发生什么

    单项服务测试

    测试您的服务可以处理快乐/不快乐的路径

    消息代理测试

    测试您的服务发布或接收kafka消息

    您可能知道,Lagom规定了Spring风格的API / Impl分叉 . 因此,域对象往往属于API测试,而其他对象属于Impl测试 . 从DDD的角度来看,这应该是有意义的 .

    没有太多想象力,您可能会看到扩展单个服务测试可以跨越多个服务测试或集成测试 .

相关问题