Я не знаю, правильно ли это , верно , но в итоге я фактически не назначаю такие контекстные фиктивные фиктивные классы, созданные вручную, константам.
Вместо:
#no
class Foo
#something
end
Вместо того, чтобы:
foo = Class.new do
#stuff
end
И вы можете foo.new или foo.class_method, если хотите. Может быть в @foo тоже. Но вы не присваиваете ее константе Foo, как это делает обычное определение класса, вы создаете «анонимный» класс и присваиваете его обычной переменной, ограниченной областью, в которой вы нуждаетесь.
Примечание: я не говорю, что это "правильный" способ сделать что-то с помощью rspec, я никогда не чувствую, что знаю, что делать правильно, правильной вещью может быть как-то вообще не создавать классы, подобные этому Или используйте какую-нибудь странную фабричную вещь, которую я не понимаю, или что-то в этом роде. Но когда мне нужно создать классы типа «пустышка» только для целей конкретного теста или блока, это то, что я делаю.