2011-12-07 14 views
6

Esiste una strategia o una serie di passaggi da seguire per migrare da RSpec 2 a MiniTest::Spec? Mi piacerebbe dare un'occhiata a fare questo per un grande progetto, ma non sono sicuro da dove cominciare.Migrazione da RSpec a Minitest :: Spec?

+0

non ero troppo colpito con MINITEST quando ho guardato di recente; Ho deciso di restare con RSpec per il momento. Detto questo, se MiniTest migliora la competitività con RSpec, questa potrebbe diventare una buona idea. –

+2

Dal momento in cui è stato scritto il commento precedente, Minitest è maturato molto, ed è ora utilizzato da Rails, Nokogiri e molti altri. –

risposta

8

Non ho usato MINITEST :: Spec per così tanto tempo, sto lavorando sul porting su alcuni dei nostri test me stesso, ma qui ci sono le poche cose che ho notato provenienti da RSpec:

  • i matchers sono ovviamente diverse - è must/wont invece di should/should_not, e matchers predicato se ne sono andati così non si può dire must_be_true/must_be_false o simili.
  • Detto questo, se hai scritto matchers RSpec personalizzati, o utilizza Shoulda-matchers o simili, si dovrebbe essere in grado di usarli con MINITEST grazie alla MINITEST-matchers gioiello. Ma YMMV.
  • MINITEST :: Spec non fornisce context, quindi avrai bisogno di cambiare sia questo per describe o alias IT.
  • MINITEST :: Spec anche non fornisce described_class.
  • Inoltre non devi before :all.
  • subject deve essere impostata manualmente (penso, qualcuno mi corregga se sbaglio).

Quindi, per rispondere alla tua domanda, in termini di porting una suite esistente di test, ho paura non si può davvero fare una semplice ricerca e sostituzione, dovrete porta su ogni file di test uno alla un tempo. Ovviamente, questo significa che devi determinare se lo sforzo è valsa la pena.

+0

Minitest supporta 'soggetto {}' (penso che probabilmente ha a che essere manuale, ma poi, ho sempre impostato in modo esplicito in RSpec in ogni caso), anche se non sembra di lavorare con l'esso '{} sintassi'. E ha il suo tipo di matcher di predicati - devi solo fare "must_be: valid?" Invece di RSpec "dovrebbe essere_valido". –

Problemi correlati