Казаха ми, че има смисъл да използвам let!()
вместо before(:each)
блок. Аз обаче не виждам много логика в това. Всъщност има ли смисъл да се направи нещо като в примера по-долу:
context 'my super context' do
let!(:something) do
Model.create(subject: "Hello", body: "World")
end
it '...' do
# We never call something
# All we want is just to evaluate and create the record
end
end
Имайте предвид, че изобщо няма да извикате something
никъде в примера. Технически не виждам голяма разлика между това и това, освен ако всъщност не е по-стриктно и лесно за разбиране без документация, точно като обикновен английски:
context 'my super context' do
before(:each) do
Model.create(subject: "Hello", body: "World")
end
it '...' do
# We never call something
# All we want is just evaluate and create the record
end
end
Може ли някой да ми помогне да разбера идеята зад даденото ми правило? Мога да разбера защо бихте използвали let
вместо before(:all)
и before(:each)
с променливата вътре. Но тук просто има чувството, че те просто сляпо следват фразата „използвайте помощник let вместо блок преди“, намерена някъде в публикацията в блога.
Благодаря ти много!
let!
Знам разликата между let и защо бихте го използвали вместо преди. Там е смисълът. Не разбирам смисъла да дефинирамlet!(:abcd) { Model.create() }
оценка на кода. Той ще създаде записа, но никога всъщност няма да извикаabcd
по-късно. Искам да кажа, че можеш да направиш това вътре в блока със същия късмет. Няма никаква разлика, освен че вторият пример е по-ясен и по-логичен. - person rudkovskyi   schedule 30.08.2016