Как правильно добавить контекст или разделение модульных тестов в одном файле спецификации? - PullRequest
0 голосов
/ 28 августа 2011

Скажем, у меня есть файл 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

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

Ответы [ 2 ]

2 голосов
/ 28 августа 2011

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

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 голосов
/ 28 августа 2011

Я думаю, 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...