Zastanawiam się, jak sprawdzić poprawność mieszkańców przekazywane do renderowania szablonu w kontrolerzeJak zweryfikować mieszkańców tynku szablon w rspec
Kontroler:
def lelf_panel
# ...
if some_condition
locals_hash = some_very_long_hash_A
else
locals_hash = some_very_long_hash_B
end
render :partial => "left_panel", :layout => false, :locals => locals_hash
end
Aktualny Spec:
it 'should render correct template for lelf_panel' do
# ...
get 'left_panel'
response.should render_template('system/_left_panel')
end
Teraz Konieczne jest dokończenie Rcov dla tego kontrolera, więc muszę dodać/zmodyfikować specyfikację, aby objąć oba wyniki "some_condition". i chcę sprawdzić poprawność lokalnych "lelf_panel" dla renderowania, tak jakbym tylko sprawdzał poprawność render_template, częściowa strona renderowana dla obu wyników jest taka sama.
sprawdzić „” w rspec renderowanie_szablonu docs w http://rubydoc.info/gems/rspec-rails/2.8.1/RSpec/Rails/Matchers/RenderTemplate:render_template
to tylko zapewnić i 2nd params do wiadomości, więc jak mogę przetestować mieszkańców przekazywane do renderowania?
ten pracował dla mnie - ale tylko po tym, jak wstawiłem polecenie PO POZA komentarzem should_receive, a także muszę dodać controller.stub (: render), aby uniknąć błędu - ale nie jestem pewien, dlaczego ... – Phantomwhale
To jest najlepsza odpowiedź. Zmiana aplikacji w celu dopasowania do biblioteki testowej jest zapachem kodu. – user94154
@Phantomwhale Właśnie napotkałem ten sam błąd, który napotkałeś. Problem polega na tym, że nasze oczekiwania nie renderują ani nie przekierowują niczego, więc domyślny render jest wywoływany na końcu akcji. To było w porządku z rspec, ale teraz jest to niezaspokojone oczekiwanie. –