sagen sie, dass der Ausdruck für: Zählung nur einmal für eine spec ausgewertet wird, und wieder zwischen jedem spec?
Antwort von docs:
Der Wert wird auf mehrere Anrufe im gleichen Beispiel, aber nicht über Beispiele im Cache gespeichert werden.
Also ja, es wird einmal für jedes Beispiel ausgewertet.
Mit anderen Worten, der Wert wird einmal pro it
Block ausgewertet.
Ich finde ihr Beispiel Super ausdruck aussehen:
$count = 0
RSpec.describe "let" do
let(:count) { $count += 1 }
# count will not change no matter how many times we reference it in this it block
it "memoizes the value" do
expect(count).to eq(1) # evaluated (set to 1)
expect(count).to eq(1) # did not change (still 1)
end
# count will be set to 2 and remain 2 untill the end of the block
it "is not cached across examples" do
expect(count).to eq(2) # evaluated in new it block
end
end
Wir verweisen count
zweimal in memoizes the value
Beispiel, aber es wurde nur einmal ausgewertet.
Willkommen bei Stack Overflow. Bitte lesen Sie "[fragen]", vor allem "[Fragen an den Smart Way] (http://catb.org/esr/faqs/smart-questions.html)". Grammatik ist wichtig bei Stack Overflow. Wir erstellen ein Nachschlagewerk, also bitte bemühen Sie sich, Rechtschreibprüfung und korrekte Formatierung zu verwenden. –