database - 在测试 API 时编写用于验证数据库条目的测试代码

标签 database jakarta-ee junit automated-tests client-server

我正在编写测试代码来测试客户端-服务器应用程序。被测应用包括

  1. 在 Tomcat 上运行的应用程序 或另一个 Java EE 应用程序服务器,以及
  2. 公开 API 的客户端 jar。

我基本上是在编写使用此客户端 API 连接到服务器的测试代码。

除了广泛测试 API 操作外,我的上司还建议我连接到服务器上的数据库并验证是否正确填充了字段。我已经为我的一些测试用例这样做了,但在回归过程中并没有真正发现任何错误。

错误会在特定功能失败时被捕获,但无论如何都会在测试 API 本身的代码中显示出来。似乎 DB 数据验证并不是很有用,尤其是考虑到编写和维护所有代码所需的额外工作。

我的问题是:

以这种方式编写用于连接到数据库并验证条目的测试代码是否有任何真正的好处?这些好处是否能抵消编写此类代码所产生的成本?

最佳答案

读取数据库对于此类测试是不必要的。您可以通过以下测试获得更好的结果:

  1. 保存请求返回成功状态。
  2. 获取请求返回保存的数据。
  3. 即使在重置客户端状态后,get 请求也会返回保存的数据。考虑客户端缓存。

如果您测试数据库内容,则您的测试不能用于查看数据库中的更改是否有效,因为测试需要数据库中的特定状态。如果更改,即使系统正常工作,您的测试也会失败。

关于database - 在测试 API 时编写用于验证数据库条目的测试代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3404458/

相关文章:

mysql - SQL - varchar 与 int 的性能

java - 我们如何衡量私有(private)方法的执行时间呢?

java - <url-pattern>/</url-pattern> 供过滤器使用

java - 在 Eclipse 中进行 JUnit 测试之前运行外部命令

java - Mockito - 模拟相同类型的通用对象

junit - java.lang.ClassFormatError : Invalid method Code length while using PowerMock

database - 汽车知识的数据库问题

mysql - 数据库实现以保存用户 Activity 信息

sql-server - 优势数据库或 SQL Server

java - 使用 MongoDB 在 Java 中计算距离