【问题标题】:Data Testing / REST Assured / Java Unit Testing数据测试 / REST 保证 / Java 单元测试
【发布时间】:2020-07-31 11:05:36
【问题描述】:

所以在过去,我曾使用过放心和其他 java 框架。

这更像是一个开放式问题,什么是测试数据的最佳/现代方法,无论是 sql / oracle ...等

所以基础是您需要确认表中的数据等于特定的字符串/int/boolean ...等。测试需要能够通过 maven 或可以集成到 Jenkins 类型环境中的东西运行,以便在每次构建时运行。

欢迎您使用任何想法或工具来实现这一目标。

我四处搜索,大多数人只是在进行正常的单元测试。但是,如果我想测试应该保持静态的生产数据,您会提出什么建议或最佳做法。

谢谢 弗伦特斯

【问题讨论】:

  • 据我了解,您正在寻找集成测试。您可以使用 Spring 框架轻松实现这一点。集成测试可以作为应用程序的端到端测试。

标签: java testing junit rest-assured


【解决方案1】:

让我提出我的意见,希望它能澄清一些事情:

首先,数据测试确实是一个广泛的话题,没有一种“灵丹妙药”和一种采用的方法。

通常,您可以在 spring 测试框架的帮助下测试您的 DAO 代码(SQL 查询),该框架提供了一种在测试前加载一些数据、运行与数据库交互的代码、事务管理的方法等。

这种测试不是单元测试,属于集成测试的范畴,maven/Gradle可以轻松支持,作为管道的一部分从jenkins运行。

还有一个名为DbUnit 的工具也适用于该域。

但是,这与“测试数据”不同。

让我问一个问题,其实很多问题,都归结为:你到底想测试什么?数据一致的事实?你在数据库中有约束,你依赖它们吗?或者出于性能原因或您的用例可以证明的任何其他原因避免使用它们和诸如索引之类的东西?

您想在测试期间填充数据吗?它将如何影响生产中已经存在的数据?

您打算在测试中使用事务吗?例如我上面提到的 Spring 测试框架能够在测试之前自动打开一个“测试事务”,并且在测试之后执行人工回滚,而不管测试的实际结果如何。这样就保证了测试过程中所做的所有更改都会回滚,测试后数据不会更改,但问题是开放的?

您是否计划随着时间的推移测试架构更改。通常,可以使用产品的新版本更改架构。在这个领域,像liquidbase或flyway这样的工具大放异彩。例如,Flyway 提供了“原子”迁移的概念,您基本上可以应用一系列迁移将模式“转换”到所需状态。虽然它不属于测试工具类别,但如果您愿意,您可以从 maven 运行此迁移。

如您所见,这些问题没有“普遍正确”的答案,不同的项目有不同的需求。因此,如果您想讨论认为适用于您的产品的特定方法 - 欢迎您提供更多技术细节,但除此之外 - 所有我提到的框架/库可以作为您询问的工具,但这里仍然缺少很多信息。

【讨论】:

  • 感谢您的详细回复,我同意这是一个广泛的话题。对于我目前正在查看的测试只是数据一致性。我去看看spring框架谢谢你的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 1970-01-01
相关资源
最近更新 更多