所以在过去,我使用过放心和其他java框架。
这更多的是一个开放式的问题,即测试数据的最佳/现代方式是什么——sql/oracle。。。etc
所以最基本的是你需要确认表中的数据等于一个特定的字符串/int/boolean。。。等等。测试需要能够通过maven或可以集成到Jenkins类型环境中的东西运行,以便在每次构建时都能运行。
你认为实现这一目标的最佳方式是什么?欢迎你使用任何想法或工具。
我到处找了找,大多数人只是在做正常的单元测试。但是,如果我想测试应该保持静态的生产数据,你会建议什么或最佳实践是什么。
谢谢Flinters
让我发表我的观点,希望它能澄清一些事情:
首先,数据测试确实是一个宽泛的话题,没有一个"银弹溶液";以及一种已采用的方法。
通常,您可以在spring测试框架的帮助下测试DAO代码(SQL查询(,该框架提供了一种在测试前加载一些数据的方法,运行与数据库交互的代码、事务管理等。
这种测试不是单元测试,它属于集成测试的类别,可以很容易地得到maven/Gradle的支持,作为管道的一部分从jenkins运行。
还有一个名为DbUnit的工具也适用于此域。
然而,这与";测试数据";。
让我问你一个问题,实际上有很多问题,这些问题都可以归结为:您到底想测试什么数据一致的事实?数据库中是否有约束,是否依赖它们?或者出于性能原因或您的用例可以证明的任何其他原因,避免使用它们和索引之类的东西?
是否要在测试期间填充数据?它将如何影响已经存在于生产中的数据?
您计划在测试中使用事务吗?例如,我上面提到的弹簧测试框架能够自动打开一个";测试事务";无论测试的实际结果如何,测试前和测试后都执行人工回滚。通过这种方式,它保证了测试期间所做的所有更改都将回滚,并且数据在测试后不会更改,但问题是开放的?
您是否计划随着时间的推移测试架构更改。通常,可以使用新版本的产品更改模式。在这个领域,像liquidbase或flyway这样的工具大放异彩。例如,Flyway提供了";原子";迁移,您基本上可以应用一系列迁移";变换";模式转换为所需状态。不过,它不属于测试工具的范畴,尽管如果您愿意,您可以从maven运行迁移。
正如你所看到的,这些问题没有";一般正确的";答案是,不同的项目有不同的需求。因此,最重要的是,如果您想讨论一种您认为适用于您的产品的特定方法,欢迎您提供更多技术细节,但除此之外,我提到的所有框架/库都可以作为您询问的工具,但这里仍然有很多信息缺失。