【问题标题】:Is there a way to run cucumber tests with real production data?有没有办法用真实的生产数据运行黄瓜测试?
【发布时间】:2012-02-16 18:42:11
【问题描述】:

我一直在尝试 Cucumber 为我们的项目创建新功能,但很难找到一种方法来针对真实数据运行测试。我必须使用 Factory Girl 创建所有实体才能正确运行它们,我做错了吗?还是黄瓜只是一步一步做每一个流程,制造假数据?尝试 Steak 方法会更好吗? (Rspec-Capybara)?

如果有人已经在运行具有大量功能的项目并且您正在将 TDD-BDD 添加到您的职责中,请告诉我是否有人遇到此问题。

【问题讨论】:

  • 您可以简单地将生产数据库复制到您的测试环境并使用真实模型而不是模拟。
  • 但是每次我运行黄瓜测试它都会从中删除所有数据,因为种子.rb 文件,然后在测试结束时它会截断所有内容,是否有解决方法?
  • @tr9sh 这个link
  • 我希望能够在暂存环境中针对我的生产数据库数据运行我的黄瓜测试,以便我可以确认提交不会破坏生产中的任何内容。

标签: ruby-on-rails tdd cucumber bdd


【解决方案1】:

FactoryGirl 和其他夹具库的重点是在不依赖生产导入的情况下生成数据。从生产中导入数据以运行测试表明您正在测试的行为实际上并不是生产中发生的行为。

新的或旧的功能,如果你的行为是已知的,那么用黄瓜来定义它。从小处着手,选择一个简单的功能并创建您的.feature 文件。根据您所知道的正确行为定义您的 step_definitions。然后,如果您的测试失败,则在您的应用程序代码中修复它,而不是在 Cucumber 中修复它。

确保您的步骤定义正在进行黑盒测试。他们不需要知道他们正在测试的函数的内部状态,他们只想使用已知的输入并测试结果。

【讨论】:

  • 好吧,我理解工厂女孩的意图,但是如果我要向没有以前的黄瓜测试的现有应用程序添加新功能,那么我需要有真实数据来验证一个功能是全新的,因为实体之间的依赖关系和关系,所以我现在给你的问题是,黄瓜只是定义你认为它可能在一个已经开始的项目中工作的场景,并且你从一开始就构建每个特性而没有数据,但是你的假设,我是对的吗?
猜你喜欢
  • 2017-10-13
  • 2020-12-19
  • 1970-01-01
  • 2021-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多