Poszukuję czystej metody użycia JBuilder i przetestowania wyjścia json z RSpec. Popularnym sposobem testowania JSON jest implementacja metody as_json, a następnie w RSpec porównywanie otrzymanego obiektu z metodą object.to_json. Ale dużym powodem, dla którego używam JBuildera, jest to, że nie chcę wszystkich atrybutów, które wypluwa to_json; więc to zrywa porównanie.Jak korzystać z RSpec z JBuilder?
Obecnie z JBuildera Mam wykonać następujące czynności, aby sprawdzić wyniki rspec:
1) Utwórz obiekt fabryczne: @venue
2) Utwórz skrót w moim teście RSpec że zawiera „oczekuje” JSON ciąg powrotem
@expected => {:id => @venue.id,:name=>@venue.name..........}
2) Porównaj @expected ciąg do results.response.body który jest zwracany z wywołania JSON.
Wydaje się to proste, z wyjątkiem tego, że mam obiekty renderowane z 15+ atrybutami, a budowanie łańcucha @expected hash jest kłopotliwe i bardzo kruche. Czy jest lepszy sposób to zrobić?
Zrobiłem dokładnie to. Nie mogę wymyślić lepszego sposobu na zrobienie tego. Zbudowałem skrót i zastosowałem '.to_json' na' @ expected'. Jedną z rzeczy, które przyspieszyłem i sprawię, że będzie mniej krucha. Być może kosztem dokładności? Czy budować moje hashe z kolekcją i mapą. Przypuszczam, że specyfika budowania niestandardowego szablonu z dowolną biblioteką budowania ciągów JSON wymaga napisania testu, który pasuje do specyfiki pracy, którą wykonujesz ..:/ – stuartc
@beeudoublez czy można używać RSpec do testowania widoków jbuildera? Mam problem z uzyskaniem polecenia rspec do przekazania obiektów do widoku, aby program obsługi jbuildera mógł skonstruować JSON. Czy masz przykład działającego widoku '* _spec.rb' pliku? – sorens