2010-05-12 13 views
6

Desidero inoltrare una richiesta di posta a un altro controller all'interno del mio test funzionale che è destinato a un controller specifico. Tuttavia, il metodo post nella classe ActiveController accetta solo il metodo da chiamare, non richiede il nome del controller da chiamare. Qualche idea su come invocare un controller diverso?Come chiamare un altro post su un altro controller nel test funzionale di Rails

+0

Perché esattamente si sta tentando di chiamare un controller separato in un test funzionale? Potrebbe esserci un modo migliore per realizzare ciò che vuoi. – Pete

+0

quindi la funzionalità che sto tentando di testare riguarda due controller. Dovrei usare un test di integrazione invece di un test funzionale? – Snehal

risposta

4

Quando si creano test per i controllori utilizzando ActiveSupport::TestCase, è possibile impostare quale controller testare quando non si desidera che venga inferito.

Quindi è possibile aggiungere un'altra classe al test per il controller corrente, impostare il controller su cui eseguire il test all'interno della nuova classe e implementare i casi di test.

Non hai fornito il codice, quindi non posso fornire una soluzione in codice, ma qui è un post per quanto riguarda il test tutti i metodi di controllo in RSpec: http://blog.wolfman.com/articles/2007/7/28/rspec-testing-all-actions-of-a-controller

[Personalmente, mi sono trasferito lontano da RSpec/TestUnit per il controller test oltre i controlli di rotta e test fuzzy. Preferisco di gran lunga il test di integrazione (ad esempio Cucumber) per qualcosa che coinvolge più parti del sistema.]

Problemi correlati