これは、サンプルブックによるLearnRailsからのものです。
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
私はRspecの初心者です。以前は、次のようなコードがありました。
describe "when email is not present" do
before { @user.email = " " }
it { should_not be_valid }
end
だから私はなぜ作者が上記のようなコードを書かなかったのか疑問に思いました:
describe "when email format is invalid" do
before do
addresses = %w[user@foo,com user_at_foo.org example.user@foo.
foo@bar_baz.com foo@bar+baz.com]
@user.email = invalid_address
addresses.each do |invalid_address|
@user.email = invalid_address
end
end
it { should_not be_valid }
end
OK、多分このコードは間違っています。before
しかし、基本的に、著者が以前に使用しなかったのか、変数を以前にit
配置しなかったのかを尋ねています。(前の例で行ったように)address
it
編集:
彼はまた、さらなる例で同様のことをします:
describe "when email address is already taken" do
before do
user_with_same_email = @user.dup
user_with_same_email.email = @user.email.upcase
user_with_same_email.save
end
it { should_not be_valid }
end