私は Rspec の流れに頭を悩ませようと最善を尽くしていますが、最も単純なことは私から逃れているようです。
2 つの異なるモデルで属性フォーマットの有効性をテストするために、いくつかのテストを再利用したいと考えています。そこで、これらの Rspec テストを別のメソッドに移動し、テスト対象のメソッドを呼び出すだけにしようと考えました。つまり、次から移動します。
describe "when email format is invalid" do
it "should be invalid" do
addresses = %w[user@foo,com user_at_foo.org example.user@foo.
foo@bar_baz.com foo@bar+baz.com]
addresses.each do |invalid_address|
@user.email = invalid_address
@user.should_not be_valid
end
end
end
このようなものに:
describe "email format checking" do
valid_email_check(@user)
end
..そしてutilities.rbで
def valid_email_check(subject)
describe "when email format is invalid" do
it "should be invalid" do
addresses = %w[user@foo,com user_at_foo.org example.user@foo.
foo@bar_baz.com foo@bar+baz.com]
addresses.each do |invalid_address|
subject.email = invalid_address
subject.should_not be_valid
end
end
end
end
この関数に渡される場合、「subect」は常に nil です。どんな助けでも感謝します。