このテストをより読みやすくするためにフォーマットするより良い方法はありますか?
expect {
within '.foo' do
click_link 'Delete'
end
}.to change {Foo.count}.by 1
動作を期待しdo...end
ますが、さらに醜いです...
このテストをより読みやすくするためにフォーマットするより良い方法はありますか?
expect {
within '.foo' do
click_link 'Delete'
end
}.to change {Foo.count}.by 1
動作を期待しdo...end
ますが、さらに醜いです...
多分このようなもの?
expected = expect do
within '.foo' do
click_link 'Delete'
end
end
expected.to change { Foo.count }.by 1
正確にはきれいではありませんが、ラインノイズの一部を低減します。
すべてを中括弧で囲み、1行に入れるのは長すぎるので、次のように記述します。
expect do
within(".foo") { click_link "Delete" }
end.to change { Foo.count }.by 1
更新:テストされていませんが、これも機能するはずです:
click_delete_link = lambda { within(".foo") { click_link "Delete" } }
expect { click_delete_link }.to change { Foo.count }.by 1
しかし、私はまだ最初のバージョンの方が好きです:)