黄瓜和Rspec共享Factory Girl工厂

6
我正在使用Cucumber和Rspec设计一个关于Rails的测试,我想知道在Cucumber验收测试和Rspec单元测试之间共享Factory Girl工厂代码是否是一种好的实践。
如果这是一种好的实践,那么最好的中立位置放置rspec和cucumber的工厂是什么地方呢?
非常感谢。
2个回答

5

您可以在任何需要的地方使用工厂模式。通常我在rspec和Cucumber故事中使用它们。

工厂模式是固件替代品。一般的想法是能够编写易读的测试并摆脱“固件”混乱的场景。

如果您将其放置在spec/factories中,那么我认为也没有问题,因为没有标准位置。但是,我通常会将其放在我的spec文件夹中。无需使用单独的中性位置。


谢谢,我会把它留在spec目录下。我主要想知道是否需要另一个factory.rb文件。 - GTDev

1

是的,不重复相同的工厂定义是一个好习惯(如果它们是共享的...我认为应该有一些重叠)。一种方法是在项目中创建一个名为“factories”的新目录,然后将以下内容添加到您的rspec和cucumber配置中:

/features/support/app.rb
    Dir[Rails.root.join("factories/**/*.rb")].each {|f| require f}

/spec/spec_help.rb
    Dir[Rails.root.join("factories/**/*.rb")].each {|f| require f}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接