Это потому, что метод musta #context
генерирует код для вас. для каждого блока #should
он генерирует для вас совершенно отдельный тест, например,
class FormDefinitionTest < ActiveSupport::TestCase
context "a form_definition" do
setup do
@definition = SeedData.form_definition
end
should "verify some condition" do
assert something
end
should "verify some other condition" do
assert something_else
end
end
end
Затем #should
сгенерирует два полностью независимых теста (для двух вызовов #should
), один из которых выполняет
@definition = SeedData.form_definition
assert something
и еще один, который выполняет
@definition = SeedData.form_definition
assert something_else
Стоит отметить, что не генерирует один единственный тест, выполняя все три шага в последовательности.
Эти сгенерированные блоки кодов имеют имена методов, такие как _bind_
что-то, и сгенерированный тест имеет имя, которое является объединением всех имен контекстов, передаваемых в блок should
, плюс строка, предоставленная блоком should (с префиксом "должен "). * * * * * * * * * * * * * * * * * * * * * * * * * * * *.