Вам нужно подумать, что делает ваш код.
Он проходит через каждый и создает before
и it "should not be valid"
но все они оценены в одном и том же объеме.
Таким образом, вы создаете загрузку before
блоков
before do
user.height_feet = 1
user.height_inches = 8
end
before do
user.height_feet = 8
user.height_inches = 2
end
...
before do
user.height_feet = ""
user.height_inches = ""
end
И вы создаете загрузку it
блоков
it "should not be valid" do
debugger
user.should_not be_valid
end
it "should not be valid" do
debugger
user.should_not be_valid
end
...
it "should not be valid" do
debugger
user.should_not be_valid
end
Так что результат всех ваших тестов в основном просто
before do
user.height_feet = ""
user.height_inches = ""
end
it "should not be valid" do
debugger
user.should_not be_valid
end
Который, я считаю, не был вашим намерением.
Очевидным решением является использование context
блока. Это закроет каждую пару утверждений в контекст.
[[1, 8], [8, 2], [5, 13], ['text', 'text'], ['text', 11], [5, 'text'], ['', '']
].each do |feet, inches|
context "with an invalid height of #{feet} feet, #{inches} inches" do
before do
user.height_feet = feet
user.height_inches = inches
end
it "should not be valid" do
debugger
user.should_not be_valid
end
end
end