2 个微服务的集成测试与单元测试

Integration tests vs units test on 2 microservices

我们的团队在 2 个不同的 GitHub 存储库中设计了 2 个微服务。

因为这些是非常紧密耦合的服务(如果 populate/update 数据库中数据的算法是错误的,数据将被破坏),我的方法是使用精选的 input/expected 输出在两个回购协议上创建单元测试 即为预期节点准备输入文件,然后为预期 JSONs

准备输入节点

这种方法有意义吗?我怀疑在此处的定义中重叠的 集成测试 怎么样?他们需要吗?在这种情况下,单元测试不会涵盖哪些内容?

我不会说它们是紧密耦合的。它们都耦合到数据库,但提供了一个相互分离的层。无论如何,任何跨越组件的东西都是一种集成测试。

在 API 的情况下,“真正的”单元测试方法是模拟数据库调用,因此它不是这种情况的一部分。有多直接/重新启动取决于它的参与程度。如果那不切实际,请在您恢复之前将测试数据库恢复到已知状态。

在文件加载的情况下,同样的基本思想适用,尽管对数据加载过程的模拟数据库调用可能很脆弱。如果您使用真实的数据库,则需要从已知状态启动它,然后再验证它的状态。 问问自己:真的是一个操作,还是“解析文件”和“写入内容到db”两个单元?