2012-10-31 37 views
5

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

例子,比如说如果有检查评价是否工作后,它需要一个帖子对象应该预先存在,它只是检查的评级。而不是创建1st post对象,然后检查其评级。

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

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

再有,我想知道是什么,是否有任何红宝石的lib /代码,指定表名,列名和值(所有最喜欢的灯具阳明海运),使用DB参数一起。它将简单地将它们插入到数据库中,而没有rails环境的上下文。因此,测试人员将他们的环境与rails隔离开来,web开发人员可以独立工作。 Rails夹具或工厂女孩似乎与导轨配合良好。还是我不正确?

+0

但是谁说工厂女郎只是为了rspec?它也适用于cucs。 http://collectiveidea.com/blog/archives/2010/09/09/practical-cucumber-factory-girl-steps/ – Chirantan

回答

1

就像Chirantan说,你可以使用工厂女孩黄瓜。 由于在测试单元或RSpec中需要您的工厂,您可以在黄瓜的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/

+0

如果我可以使用工厂女孩,那么为什么不夹具?对? –

+1

是的,你也可以使用灯具。 – hindenbug

-1

当使用黄瓜,给定的语句将测试情况了:

Given I have a basic user with a password 

和当语句触发测试:

When the user logs in 

和当时语句检查的测试结果

Then they see the basic menu 

得到的数据在给定语句加载。

+0

它为测试开始之前的环境做好准备。鉴于我身高7英尺,当我走过门口时,我应该撞上我的头。在测试开始前,给定的尺寸让我有7英尺高。什么时候走过门口。然后确保我碰到我的头。如果我不是7英尺高,我无法进行测试。理想情况下,这将是对数据库的调用,以使用户存在并且高7英尺。设置通常称为测试先决条件。使用rspec,通常是before:each或before:all。在test:unit中,它是一个setup()。 –