【发布时间】:2020-09-05 09:18:40
【问题描述】:
我有一个 Java 程序,它从 2 个表中检索数据,并在快速处理后将结果数据存储在另外 2 个表中。
因此,我需要测试我的代码的全局行为,所以我想到的第一个想法是创建很多小的输入表,有 2 或 3 行(仅用于测试)。然后在所有这些测试表中执行代码并与预期结果(也是预先创建的小表)进行比较。 问题是我不知道如何继续
【问题讨论】:
标签: java mysql junit spring-data-jpa mocking
我有一个 Java 程序,它从 2 个表中检索数据,并在快速处理后将结果数据存储在另外 2 个表中。
因此,我需要测试我的代码的全局行为,所以我想到的第一个想法是创建很多小的输入表,有 2 或 3 行(仅用于测试)。然后在所有这些测试表中执行代码并与预期结果(也是预先创建的小表)进行比较。 问题是我不知道如何继续
【问题讨论】:
标签: java mysql junit spring-data-jpa mocking
您可以使用 h2 数据库来特意运行内存数据库进行测试;这是关于该主题的简短教程 - https://www.baeldung.com/spring-testing-separate-data-source
【讨论】:
您最初的想法会使事情变得过于复杂。我只需创建带有 _test 后缀的表的精确副本,并对测试表执行与对真实表执行的操作相同的操作。操作完成后,将您的测试表内容与您的期望进行比较,然后将其清空。
假设您的表分别称为 s1、s2 和 d1、d2,让我们为您的测试创建 s1_test、s2_test、d1_test 和 d2_test。然后执行以下算法:
for tc of testcases
initialize s1_test, s2_test
perform tc.operations(s1_test, s2_test, d1_test, d2_test)
compare contents of d1_test and d2_test with tc.expectations
clear d1_test, d2_test
end for
【讨论】: