Я бы хотел использовать FactoryGirl для создания одноразовых фабрик. То есть Фабрика больше не существует, как только она выходит из сферы применения.
Большинство фабрик определяется примерно так:
Factory.define(:user) do
first_name "James"
last_name "Smith"
end
u = Factory.build(:user)
Но если сделать это таким образом, значит FactoryGirl навсегда сохранит ссылку на фабрику :user
Независимо от того, где вы находитесь, Factory.build(:user)
означает тот, который вы определили ранее. Я хочу что-то вроде этого:
f = Factory.temporary(:user) do
first_name "David"
last_name "Jones"
end
u = f.build
Как только f
выходит из области видимости, вы больше не можете ссылаться на него, поэтому не будет опасности загрязнения пространства вашего объекта фабриками, которые не используются. (Если я хочу, чтобы одноразовая фабрика использовалась только в определенном тесте, я не хочу, чтобы он подвергался воздействию остальных моих тестов. Это небрежно.)
Это возможно? Если нет, то есть ли драгоценный камень, который позволит мне сделать что-то эквивалентное?