【问题标题】:data factory for cucumber, watir黄瓜数据工厂,watir
【发布时间】:2012-10-20 11:15:23
【问题描述】:

我们有一个独立的测试自动化团队,只负责自动化 watir+cucumber 功能测试用例。他们的代码库没有附加到其他开发人员正在开发的 rails 应用程序,而是保持独立。到目前为止,我们已经自动化了几个测试用例,现在我们遇到的问题是,一些(watir/cucumber specs)测试用例需要一些数据预先存在于数据库中,所以它(测试用例)应该只关注问题 stmt,而不是创建任何数据要求本身。

例如,如果它必须检查评级是否对帖子有效,它要求帖子对象应该预先存在并且它只检查评级。并且不创建第一个帖子对象,然后检查其评级。

这里最好的方法是什么?就像我们有用于轨道单元测试的固定装置和工厂女孩一样,黄瓜规格有什么?或者我们应该只在这里使用特性吗?这些测试人员可能不知道所有存在的模型,他们是否知道它们以便通过调用 Rails-Model 接口来使用夹具。

我的想法是,当我们编写功能文件时,它不应该指向或谈论任何看起来像元数据的模型。 Watir/specs 测试用例应该只知道“Web-application”/browser 只是作为与应用程序交谈/处理的接口。他们不应该知道任何其他接口(夹具/模型)。因此,他们应该利用他们知道的单一界面,自行创建自己的数据。

再次,我想知道的是,是否有任何 ruby​​ 库/代码,给定的表名、列名和值(都最像固定装置 yml),以及 db 参数。它只会将它们插入到数据库中,而不需要 Rails 环境的上下文。因此,那些将环境与 Rails Web 开发人员隔离的测试人员能够独立工作。 Rails 固定装置或工厂女孩似乎与 Rails 很好地结合在一起。还是我说的不对?

【问题讨论】:

标签: ruby testing cucumber watir ui-automation


【解决方案1】:

就像 Chirantan 说的,你可以用 Factory girl 和黄瓜。 根据测试单元或 RSpec 中的工厂要求,您可以在 cucumber 的 env.rb 文件或任何自定义配置文件中执行相同操作。

http://robots.thoughtbot.com/post/284805810/gimme-three-steps

http://www.claytonlz.com/2010/03/zero-to-tested-with-cucumber-and-factory-girl/

http://www.andhapp.com/blog/2009/11/07/using-factory_girl-with-cucumber/

【讨论】:

  • 是的,你也可以使用灯具。
【解决方案2】:

使用 cucumber 时,Given 语句设置测试情况:

Given I have a basic user with a password

When 语句触发测试:

When the user logs in

Then 语句检查测试结果

Then they see the basic menu

数据在 Given 语句中加载。

【讨论】:

  • 它为测试开始前的环境做好准备。鉴于我身高 7 英尺,当我通过门口时,我应该撞到我的头。给定的让我在测试开始前有 7 英尺高。当已经通过门口。然后确保我撞到我的头。如果我不是 7 英尺高,我就不能参加考试。理想情况下,这将是调用数据库以使用户存在并且身高 7 英尺。设置通常被称为测试先决条件。使用 rspec,它通常是 before :each 或 before :all。在 test:unit 中,它是一个 setup()。
猜你喜欢
  • 2017-07-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多