У меня есть следующая фабрика:
FactoryGirl.define do
factory :location do |f|
f.descrizione { Faker::Company.name }
f.indirizzo { 'Yellow submarine lane, 1'}
f.citta { 'Nowhereland' }
f.cap { '0100' }
f.provincia { 'ZZ' }
end
end
и следующую спецификацию:
describe "/api/v1/clients/:client_id/locations.json", :type => :api do
let(:client) { FactoryGirl.create(:client) }
let(:url) { "/api/v1/locations" }
describe 'Locations index' do
it_behaves_like "requires a client"
def do_verb
get url+".json", client_id: client.id
end
describe "fetches all locations for a given client" do
it "returns an empty array of locations when client has no locations" do
do_verb
body = JSON.parse(last_response.body)
body.should eq([])
end
it "returns an array with client's locations" do
location = FactoryGirl.create(:location)
client.locations << location
client.save
do_verb
body = JSON.parse(last_response.body)
location_params = location.attributes
body.should eq([location_params])
end
end
end
...
Теперь все работает, как и ожидалось (без каламбура), за исключением сравнения между полями :created_at и :updated_at того, что находится внутри тела, и того, что исходит от FactoryGirl (location_params).
Ошибка, которую я получаю при запуске спецификации, выглядит следующим образом:
Diff:
@@ -5,6 +5,6 @@
"cap"=>"01000",
"citta"=>"Nowhereland",
"provincia"=>"ZZ",
- "created_at"=>Sat, 15 Sep 2012 16:39:13 UTC +00:00,
- "updated_at"=>Sat, 15 Sep 2012 16:39:13 UTC +00:00}]
+ "created_at"=>"2012-09-15T16:39:13Z",
+ "updated_at"=>"2012-09-15T16:39:13Z"}]
Как видите, и created_at, и updated_at в теле ответа представлены иначе, чем то, что возвращает FactoryGirl.
Что мне здесь явно не хватает?
Заранее спасибо за вашу помощь