API 测试应该在哪里进行?

Where should API tests live?

这个问题与 重复,但我想尽可能获得更多信息。

因此,假设您正在编写一个新的 API 路由 /get_something。现在,理想情况下,您想要测试此端点以确保它正常工作。

让我们考虑这个端点是一个真正的生产端点,它构建起来并不简单:它需要一个特定的身份验证和一个特定的输入列表,这些输入应该在一个具体方式。这意味着一个简单的 http.Get() 调用不会削减它:你需要一个专用函数(例如 client.BuildGetSomethingRequest())来调用它。

测试(无模拟)应如下所示:

这里的问题是这个组件的测试应该在哪里进行

如果你在后端编写测试(即,路由将被编程的相同代码库),你实际上是在为该 API 路由创建一个客户端(即,类似于 client.BuildGetSomethingRequest() 我们之前讨论过)并且您将在制作前端时 复制 相同的客户端。

另一种选择是在前端的 API 路由中进行功能测试。通过这种方式,您将编写请求构建代码(例如,client.BuildGetSomethingRequest()一次,并且还可以获得在前端和后端之间进行健康测试的好处。

我个人更喜欢第二种方法,但它迫使开发人员在两个代码库之间进行操作,并且在一个组件中编写代码,但在另一个组件中进行测试感觉很奇怪。

也就是说,如果后端和前端共享相同的语言 (Javascript),那么将它们耦合是有意义的,但从微服务的角度来看,这是错误的。

伙计们,你们有什么想法?

欢呼和感谢

。关闭是相当主观的,也许聊天室是一个更好的地方。