到feature
測試格式遷移時的一些request
試驗水豚2.1,並從基礎的should
到expect
基於切換測試語法還有我最近碰到這個問題。要使用原來的問題爲例,我有這樣的代碼:
subject { -> { post("/api/users", parameters) } }
it { should change(User,:count).by(1) }
it { should_not change(ActionMailer::Base, :deliveries) }
在scenario
測試將這一到expect
語法提出了一些問題,並取得了這樣的(工作)clunkiness的(對不起,不是一個大風扇明確地嵌套lambda
S/expect
S):
expect(-> { expect(post("/api/users", parameters)).to change(User,:count).by(1) }
).to_not change(ActionMailer::Base, :deliveries)
有在this StackOverflow thread這個問題一些偉大的解決方案,我試圖與成功,但我落得這樣做只是按照原來的格式有點和拆出每個語句都變成了自己的scenario
;是這樣的:
feature "Add users via API" do
given(:posting_parameters_to_api) { -> { post("/api/users", parameters) } }
scenario "foo" do
expect(posting_parameters_to_api).to change(User,:count).by(1)
end
scenario "bar" do
expect(posting_parameters_to_api).to_not change(ActionMailer::Base,
:deliveries)
end
end
比原來request
規範更詳細,但以同樣的方式基本上是工作。實施可能會歸結爲個人品味。
正在尋找這個我自己 – prusswan