5
這個來自Learn Rails by example book:測試無效的電子郵件使用RSpec
describe "when email format is invalid" do
it "should be invalid" do
addresses = %w[[email protected],com user_at_foo.org [email protected]
[email protected]_baz.com [email protected]+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[[email protected],com user_at_foo.org [email protected]
[email protected]_baz.com [email protected]+baz.com]
@user.email = invalid_address
addresses.each do |invalid_address|
@user.email = invalid_address
end
end
it { should_not be_valid }
end
好吧,也許這個代碼是錯誤的。但基本上,我在問爲什麼作者在it
之前沒有使用before
或者在it
之前使用address
變量?
EDIT(因爲他在前面的例子一樣):
他也確實在進一步的例子類似的東西:
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
非常感謝!現在很清楚。 – alexchenco
對不起,不客氣! –