【问题标题】:How to test the app using Postman properly?如何正确使用 Postman 测试应用程序?
【发布时间】:2021-08-25 14:41:09
【问题描述】:

我有一个基于 Spring Boot 的 Java 应用程序,并且刚刚开始使用 Postman,而不是测试特定端点,现在我想检查影响不同方面的更改,假设我为 Employee 端点添加了一些端点:

//GET
http://localhost:8080/api/v1/employee/getEmployees


//POST
http://localhost:8080/api/v1/employee/createEmployee


// PUT:
http://localhost:8080/api/v1/employee/updateEmployee/id


// DELETE:
http://localhost:8080/api/v1/employee/deleteEmployee/id

在这个场景中,我将这些端点的所有相关方法添加到:

员工控制器

员工服务

员工存储库

Controller、Service 和 Repository 中的这些 CRUD 方法也可能使用一些其他方法。

注意:我已经定义了单元和集成测试,但只需要使用数据库中的测试数据获取 Postman 方面的信息。

在这个场景中:

1. 将请求发送到端点(控制器)是否足以测试所有这些 EmployeeController、EmployeeService 和 EmployeeRepository?或者我应该如何测试我为 Employee CRUD 操作添加的所有这些方法?

2.我认为除了通过控制器发送请求之外,没有其他方法可以检查服务和存储库方法?这是真的吗?

【问题讨论】:

  • 进行测试时,无论您使用什么工具,第一步都是明确指定每个测试实际测试的内容。例如,“当用户向端点/api/v1/blah/blah/blah 发帖时,响应应该是……”。填空并描述每个端点所需的尽可能多的测试。

标签: java spring testing postman


【解决方案1】:

进行测试时,无论您使用什么工具,第一步都是明确指定每个测试实际测试的内容。例如,“当用户向端点/api/v1/employee/getEmployees 发帖时,响应应该是……”。填空并描述每个端点所需的尽可能多的测试。

请注意我的示例描述如何仅使用路径,而没有提及控制器、服务或存储库。从 HTTP 客户端(如 Postman)的角度来看,只有路径很重要。 Postman 完全看不到控制器、服务和存储库等实现细节。

旁注:我建议创建一个允许GETPOST 请求的单一路由/api/v1/employee/。无需将路线命名为 /api/v1/employee/getEmployees,因为这就是 GET 动词的含义。同样,POST 已经表示创建员工,因此无需在路径中添加createEmployee。同样,路径/api/v1/employee/id/ 可以允许GETPUT,而不需要路径中描述动作的额外单词。

【讨论】:

  • 非常感谢您的精彩解释。在这个场景中,我想我只需要在 Controller 中测试端点。这是真的吗?
  • @Rosa 是的,Postman 只能看到路由/端点。它对控制器或底层细节一无所知。这将间接测试服务和存储库,但从这个角度来看,您不应该担心这些细节。只考虑调用特定端点时会发生什么。
  • 测试ServiceRepository 方法怎么样?是否有任何方法可以测试它们除了单元和集成测试
  • @Rosa Postman 对实现这些端点的 Java 代码一无所知。事实上,它甚至都不知道它们是用 Java 实现的。它们可以很容易地用 Python、PHP 或 Postman 关心的任何其他语言来实现。 Postman 只知道如何向 URL 发出 HTTP 请求并接收响应。所以 Postman 不能用于直接测试您的服务和存储库。 postman 的测试集成测试。如果您想直接测试服务或存储库方法,则需要用 Java 编写这些测试。
  • 是的,我同意你的看法。但我只是想澄清一下,如何通过使用测试数据库来测试端点及其相关方法。在这个场景中,我认为在 Controller 上测试端点也意味着在 Service 和 Repository 上测试它们的相关方法。当然它不像编写和运行测试那样正确,但是我的意思是当我在Controller上调用createEmployee方法时,它也会在Service上调用它们的相关方法(当然还有Service上的一些相关子方法),然后它也会在 Repository 上调用相关方法。结果我可以测试这些方法
猜你喜欢
  • 2021-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多