Скажем, у меня есть файл user_spec.rb, и у меня есть тесты в этом файле.

Как я могу добавить или сгруппировать связанные тесты?

Я думаю, что читал, что могу добавить контекст, но не уверен, что это то, что мне нужно.

Я хочу сделать что-то вроде этого:

describe User do

  password tests do
     length related tests do
       it "..." do
       end
       it "..." do
       end
     end

     bad characters related tests do
         it "..." do
         end
         it "..." do
         end
     end
  end

end

Как правильно это сделать, если это возможно?

0
Blankman 28 Авг 2011 в 01:52

2 ответа

Лучший ответ

Я думаю, что context - это просто псевдоним для decribe, так что вы должны иметь возможность сделать это:

describe User do
  describe "password" do
    describe "length" do
      it "must be shorter than 400 characters" do
      end
      it "must be longer than 3 character" do
      end
    end

    describe "characters" do
      it "newline is not allowed" do
      end
    end
  end
end
2
David Grayson 27 Авг 2011 в 21:56

Вы можете использовать вложенные блоки описания для группировки связанных тестов

describe User do

  describe "password tests" do
     describe "length related tests" do
       it "..." do
       end
       it "..." do
       end
     end

     describe "bad characters related tests" do
         it "..." do
         end
         it "..." do
         end
     end
  end

end

Изменить: в ответ на ваш вопрос: «Могу ли я установить переменные для этой области в каждом под-блоке описания? Но эти переменные не должны быть доступны ни в каких других блоках описания»: в каждом блоке описания вы создаете новую область, что означает, что это сработает:

describe "password tests" do
    where_i_am = "inside password tests"
    describe "length related tests" do
        #some code
        puts where_i_am #outputs "inside password tests"
    end
end

puts where_i_am #undefined local variable or method ...
2
brentvatne 27 Авг 2011 в 23:15