2010-10-26 13 views
5

Per una suite di test che utilizza già la moka per il mocking, è possibile scrivere nuovi test con rspec mocking? forse girare che in prima (: all) e girare di nuovo a moka dopo (: all)Mocking con rspec e mocha insieme

Ho provato a cambiare la configurazione :: Runner Spec in fase di esecuzione e che non sembra funzionare con beffardo

+0

Vorrei riformulare la tua domanda "rspec mocking sembra in conflitto con la moka .come utilizzo entrambi in un progetto?", E forse dirigerlo alle persone rspec in IRC, problemi di github, ecc. –

+0

Specificare quale versione di rspec stai usando. – bobbywilson0

risposta

3

Ho pubblicato un nuovo gioiello per questo. Puoi trovare maggiori dettagli qui ->http://github.com/endeepak/rspec-multi-mock

+0

grazie un milione per questo :) Usalo adesso per migrare da Mocha a RSpec. –

+0

Sono contento che serva allo scopo :) –

1

Sembra che la gemma di Deepak RSpec Multi Mock risolva questo problema.

Ma dovresti chiederti se è davvero quello che vuoi. In definitiva, la coerenza è la cosa più importante, e l'uso di un mix di strutture di simulazione all'interno della stessa app è destinato a creare confusione.

Personalmente sono abbastanza felice con il mocking incorporato di RSpec e di solito non trovo la necessità di Mocha sui miei progetti. Ma alcuni dei miei colleghi preferiscono Mocha e io non sono a conoscenza di alcuna limitazione di Mocha rispetto alla vaniglia RSPec, quindi consiglierei di attenersi a Mocha se è quello che l'app già usa. Anche se so che il suo supporto "any_instance" è considerato da alcuni un odore di codice, a volte può essere molto utile. :)

+0

Sono assolutamente d'accordo con te. Come ho menzionato nella pagina Github, questa gemma dovrebbe probabilmente essere usata mentre si sta passando da un framework a un altro e non si ha abbastanza tempo per convertire tutti gli usi. O quando qualche cosa di cui si ha bisogno non è disponibile nell'attuale beffa struttura. O ci sono casi in cui si uniscono due progetti e usano diversi quadri di derisione. L'obiettivo finale dovrebbe essere quello di utilizzare un singolo framework ed evitare confusioni –