Я пытаюсь рекурсивно объявить контексты в Rspec из модуля Helpers.
(Мой код использовал бы эти контексты необычным образом, а именно, чтобы рекурсивно делать утверждения о ключах во вложенном хэше. Возможно, я мог бы решить эту проблему другим способом, но это не относится к делу.)
Минимальный полный пример:
module Helpers
def context_bar
context "bar" do
it "baz" do
expect(true).to be true
end
end
end
end
include Helpers
describe "foo" do
Helpers.context_bar
end
Если я сейчас выполню этот код в Rspec, то произойдет сбой:
RuntimeError:
Creating an isolated context from within a context is not allowed. Change `RSpec.context` to `context` or move this to a top-level scope.
Затем я могу изменить его следующим образом:
def context_bar
context "bar" do
it "baz" do
expect(true).to be true
end
end
end
describe "foo" do
context_bar
end
И это прекрасно работает для меня, хотя я теряю удобочитаемость, связанную с наличием этого метода и аналогичных методов внутри пространства имен модуля.
Есть ли способ для меня, чтобы сделать эту работу?
(Обратите внимание, что этот вопрос имеет поверхностное сходство с другими, такими как this one или в Rspec docs here . Это, кажется, делает помощников доступными внутри примеров, но это не позволит мне фактически объявить контекст.)