我正盡我所能將我的頭圍繞Rspec的流程,但最簡單的事情似乎逃脫了我。在Rspec中傳遞科目
我想在兩個不同的模型上重用一些測試屬性格式的有效性。所以,我認爲我會將這些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
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[[email protected],com user_at_foo.org [email protected]
[email protected]_baz.com [email protected]+baz.com]
addresses.each do |invalid_address|
subject.email = invalid_address
subject.should_not be_valid
end
end
end
end
「subect」 始終是當傳遞給這個函數爲零。任何幫助讚賞。
您確定@user正在測試中被實例化嗎?無論如何,關於共享示例的建議是很好的。 – zetetic