Che cosa sono i mock?

Utente HTML.it
chiede

Che cosa sono i mock?

Redazione HTML.it
risponde

Rails contiene una cartella chiamata test/mocks molto speciale. I file al suo interno, suddivisi in una cartella per ogni environment, sono caricati da Rails in automatico dopo i corrispondenti nell’applicazione Rails, in fase di esecuzione di un test. In questo modo è possibile sovrascrivere il comportamento di una determinata libreria.

Ad esempio, ipotizziamo che il controller Shopping esegua una chiamata ad un sistema di carte di credito ogni volta che si esegue un acquisto. In fase di test potremmo non voler lanciare questa chiamata ma modificare il metodo charge_credit_card in modo da restituire sempre true senza interrogare la banca.

A questo punto è sufficiente creare un file shopping_controller.rb e sovrascrivere il metodo incriminato. In questo modo, potremo eseguire quanti test vogliamo senza disturbare la banca ogni volta.

In Ruby esistono soluzioni più evolute per il mocking. Una libreria molto diffusa si chiama mocha.