man*_*nis 1 rspec ruby-on-rails ruby-on-rails-4 factory-bot
在字符工厂上调用 create 时出现错误
factory :user do |f|
f.sequence(:email) { |n| "foo#{n}@example.com" }
f.password "password"
end
factory :character do |f|
f.name "testcharone"
f.race "human"
after(:create) { |character| character.init("fighter")}
association factory: :user
end
Run Code Online (Sandbox Code Playgroud)
错误:
NoMethodError:
undefined method `to_sym' for {:factory=>:user}:Hash
Run Code Online (Sandbox Code Playgroud)
任何人都可以看到有什么问题吗?
完成此测试需要 16 分钟,而其他类似的测试需要 5-10 分钟
describe Character do
let(:character) { FactoryGirl.create :character}
describe "#add_units" do
context "when unit doesnt exist beforehand" do
it "it create a new member" do
expect(character.owns.count).to eq(0)
character.add_units("character", "Archer" => 1)
expect(character.owns.count).to eq(1)
expect(character.owns.first.amount).to eq(1)
end
end
Run Code Online (Sandbox Code Playgroud)
在factory :character,
代替
association factory: :user
Run Code Online (Sandbox Code Playgroud)
和
association :user
Run Code Online (Sandbox Code Playgroud)
您必须只传递工厂名称,即:user在这种情况下,而不是散列factory: :user
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |