首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每个集成测试都有单独的数据是个好主意吗?

每个集成测试都有单独的数据是个好主意吗?
EN

Software Engineering用户
提问于 2018-02-08 09:13:09
回答 2查看 1.7K关注 0票数 1

为每个集成测试设置单独/唯一的数据集是个好主意,还是所有测试都应该重用相同的数据?我为每个测试设置单个数据集的想法是,对每个测试都有更多的控制,以便更容易地更新旧测试和实现新数据。与其确保新测试的新数据不会干扰旧的数据/测试,我只需添加一个只供我的新测试使用的新数据集。对我来说,这是有意义的,但当阅读集成/服务测试时,它似乎是最重要的(全部?)在所有测试中使用相同的数据。

我为每个测试创建唯一数据集的最大原因是,我希望为一个微服务体系结构编写测试,并确保您获得唯一的ID--这在所有DB的所有测试中都是一样的--结果有点混乱。如果我有单独的数据集,我可以跟踪AAA:

代码语言:javascript
复制
// Assign
Mock up database, could be CSV files loaded into an in memory-db.

// Act
Make a call to the endpoint I want to test, could be done through for example MSTest, Webtest or POSTMAN

// Assert
Make sure that the response contains the data I wanted.

在上述情况下,CSV将是数据集。因此,每个测试都将获得单独的CSV文件,这些文件将用于在运行测试之前为DB注入种子。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2018-02-08 20:51:51

这完全取决于情况:

如果使用唯一的测试数据集,则:

  • 如果测试系统具有持久性,您就不会受到先前测试运行的影响。
  • 如果多个测试并行运行,您也较少受到干扰。
  • 当结果不令人满意时,更容易跟踪数据
  • 您需要更多的精力来生成每个测试集,因为您必须确保所有数据的一致性。
  • 在泡沫中进行测试,可能会忽略一些愚蠢的错误,例如一些基本的并发问题(例如,当数据保持锁定但不应该被锁定时)。

如果使用相同的数据:

  • 参考数据可能通过先前的测试以一种不利的方式改变。
  • 当一个测试无法确定它是由于当前的测试运行还是由于之前的一些问题时,就会更加困难。
  • 忘记测试并发一致性
  • 准备测试集比较容易。
票数 2
EN

Software Engineering用户

发布于 2018-02-08 13:31:24

我会选择每个测试的个人数据。

严格来说这不重要。如果您总是从每个测试的预定义状态开始,那么对计算机来说并不重要。

但是,在测试失败的不太可能(咳嗽)的情况下,独特的数据使开发人员更容易进行通信。更容易记住"Karl & Karen“的测试是关于什么的,然后是对Alice的第54号测试。“卡尔和凯伦”是金毛猎犬的一对很好的假想夫妻,卡尔从不按时阅读他的电子邮件,凯伦提醒他,现在他们的两个账户都有相同的电子邮件地址,而且无论如何都应该正常工作……爱丽丝#54?不知道那是怎么回事。失败了?哇。我需要看一下文件。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/365569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档