Faker宝石到具体价值?

时间:2016-12-01 19:47:47

标签: ruby-on-rails capybara faker

假设我有一个简单的工厂:

FactoryGirl.define do
  factory :state do
    name Faker::Address.state_abbr    
  end
end

例如,我们使用的大多数单元测试都是“好的”。例如,有一个随机的state_abbr

但是,我有一些依赖于下拉的集成测试(要选择表单中的状态),因为我不知道将要生成什么,所以我无法专门选择它。

自从做这样的事情: @state = FactoryGirl.create(:state, state_abbr: 'WA')

似乎不适用于我的Capybara集成规范。有没有办法覆盖faker正在产生的东西?

(因为我得到类似的错误:

失败/错误:@state = FactoryGirl.create(:state,state_abbr:' WA')  NoMethodError:    未定义的方法`state_abbr ='对于#

使用"名称:" XX"改变缩写。

作为参考,我不能真正去改变工厂,因为许多其他单元测试都依赖于它,这是针对新的集成测试。

1 个答案:

答案 0 :(得分:2)

这是因为在您的州工厂中,字段为name而不是state_abbr

@state = FactoryGirl.create(:state, name: 'WA')