Closed jkpj closed 13 years ago
Jotain tällaista?
En nyt vieläkään oikein hahmota miten tuo spec pitäisi tehdä oikein. Siis: haluan testata generate_start_times kahdella eri datalla, ilman eriä ja erien kanssa, siitä tuo erillinen generate_batch_start_times tuoreimmassa commitissa, joka testaa erän kanssa. Vailla kokemusta en nyt sitten hahmota mikä olisi korrekti tapa nimetä tuo (tai voiko samaan testiin sisällyttää testauksen kaksilla datoilla), kun konventio on nimetä testattavan metodin mukaan.
Varmaankin on vielä paikallaan tehdä testi vielä myös "hännät pois" -ominaisuudelle kun sen lisään, eli kolmas testi aikojen generoinnile.
Kannattaa varmaan lukea RSpec:stä tarkemmin: http://relishapp.com/rspec ja https://github.com/rspec/rspec. Jos katsot sitä kohtaa series_spec:stä, josta alkaa #generate_start_times, niin sen alla on useita testejä. Kaikki käyttävät samaa before-blokissa olevaa perusdataa sekä lisäävät siihen jotain pientä. Esim. sinun tapauksessa voit yksittäisen testin alla tehdä jotain tällaista: @race.batch_variable = 50 @race.save! @series.reload # koska muuten @series.race sisältää vanhaa tietoa @series.generate_start_times # jne...
kokeilun perusteella jos hahmotin oikein, vastaus ilmeisesti on yksinkertaisesti, että metodin nimi testissä, eikä haittaa vaikka on useampia testejä samalle metodille.
Lisäsin häntien käsittelyn ja vaihdoin testin yhdistettyyn erien ja häntien käsittelytestiin.
Merge tehty ja pushattu. Korjasin myös sen not null -asetuksen.
Kolme tuoreinta committia näistä, mahdollisesti viimeinen poislukien (db/schema.rb, db:migrate:han päivittää tätä joten en ole varma pitääkö olla tästä commit, tiedoston mukaan pitää), toteuttavat nuo erien väliajat.
Tunnettuna ongelmana on ainakin, että olemassaolevan kilpailun eräkoko ja tauko ovat nil, jolloin lähtöaikojen generointi niissä ei onnistu. Voi hyvinkin olla että muitakin ongelmia on, vaikka perustoiminnan testissä näyttää toimivan.