In meinem Dashboard#Index
, ich habe dies:Wie teste ich eine lokale Variable in einem Controller mit Rspec?
def index
tagged_nodes = Node.includes(:user_tags).tagged_with(current_user.email)
end
Wie teste ich dies mit RSpec?
Ich habe versucht:
expect(assigns(tagged_nodes)).to match Node.includes(:user_tags).tagged_with(u1.email)
Aber das gibt mir diese Fehlermeldung:
NameError:
undefined local variable or method `tagged_nodes' for #<RSpec::ExampleGroups::DashboardController::GETIndex:0x007fe4edd7f058>
Yeh .... Ich weiß, wie Instanzvariablen zu testen. Sollte ich also keine lokalen Variablen in meinem Controller haben? – marcamillion
Sie können lokale Variablen verwenden, müssen diese jedoch nicht testen. Sie sollten das äußere Verhalten des Controllers testen: Bei einer bestimmten Anfrage, welche Antwort gibt es (oder welche Daten es an die Ansicht übergibt). Lokale Variablen sind privater Status und Sie testen den privaten Status im Allgemeinen nicht. –
Ahh ok. Das macht Sinn. – marcamillion