假设我有一个简单的工厂:
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"改变缩写。
作为参考,我不能真正去改变工厂,因为许多其他单元测试都依赖于它,这是针对新的集成测试。
答案 0 :(得分:2)
这是因为在您的州工厂中,字段为name
而不是state_abbr
@state = FactoryGirl.create(:state, name: 'WA')