Fixtures jsou vzorky dat, datových záznamů, které jsou nám k dispozici v průběhu testování. Můžeme je specifikovat několika způsoby.
Jako YAML soubor. V této variantě jsou všechny záznamy zapsány v YAML souboru v test/fixtures/
. Každý záznam má formu:tabulka
.yml
jina: id: 2 skupina: ostatni nazev: Jiná společnost, s.r.o jednatel: Vašek Jednák ulice: MyString mesto: Brno psc: 01234 ico: 01234568
První řádek je symbolický název záznamu pomocí kterého se na záznam můžeme odkazovat. Dále následují jednotlivá pole s hodnotami. Pole id
nemusíme definovat, bude vyplněnou automaticky.
Jako CSV soubor. Dalším způsobem zápisu je csv soubor. Ten dovoluje „hustější“ zápis kdy každý řádek definuje jeden záznam.
id, skupina, nazev, jednatel 1, ostatni, "Jiná společnost, s.r.o.", Vašek Jednák 2, tun, "Tuneláři, a.s.", Tomáš Razič 3, ostatni, "Kamarád & spol", Bořek Stavča
Na prvním řádku jsou názvy polí (sloupců) v souboru definovaných. Na dalších řádcích pak jednotlivé záznamy s poli přesně v pořadí podle prvního řádku.
S použitím CSV souborů jsou spojeny všechny ty zvláštnosti CSV zápisu jako jsou:
,
', musí být ohraničeno uvozovkami '"
'"
' musí být zdvojeny '""
'Fixtures se automaticky nepoužijí. Pokud je chceme použít můsíme tak učinit sami příkazem fixtures. V následující ukázce je tento přikaz použit rovněž s testem který ověří že se načetly opravdu všechy záznamy. V našem případě jsou v souboru test/fixtures/spolecnosti.yml
dva záznamy.
class SpolecnostTest < ActiveSupport::TestCase
fixtures :spolecnosti
def test_spolecnost_fixtures
assert_equal 2, Spolecnost.count
end
…
end