W moim Dashboard#Index
, mam to:Jak przetestować zmienną lokalną wewnątrz kontrolera z Rspec?
def index
tagged_nodes = Node.includes(:user_tags).tagged_with(current_user.email)
end
Jak przetestować to z RSpec?
Próbowałem:
expect(assigns(tagged_nodes)).to match Node.includes(:user_tags).tagged_with(u1.email)
Ale to daje mi ten błąd:
NameError:
undefined local variable or method `tagged_nodes' for #<RSpec::ExampleGroups::DashboardController::GETIndex:0x007fe4edd7f058>
Yeh .... wiem jak przetestować zmienne instancji. Więc czy nie powinienem mieć żadnych zmiennych lokalnych w moim kontrolerze? – marcamillion
Możesz mieć zmienne lokalne, ale nie musisz ich testować. Powinieneś przetestować zewnętrzne zachowanie kontrolera: biorąc pod uwagę określone żądanie, jaką odpowiedź daje (lub jakie dane przekazuje do widoku). Zmienne lokalne to stan prywatny i ogólnie nie testujesz stanu prywatnego. –
Ahh ok. To ma sens. – marcamillion