gpt4 book ai didi

ruby-on-rails - 使用 rspec 将日期时间字段测试为 JSON 字符串

转载 作者:数据小太阳 更新时间:2023-10-29 07:28:47 26 4
gpt4 key购买 nike

我正在尝试通过 rspec(在 Rails 中)通过 [the original object].to_json 和响应主体之间的相等性来测试 JSON 响应。问题是响应 JSON 字符串中的 updated_atcreated_at 字段与原始对象中的相同字段相差毫秒,因此测试失败。

测试:

lesson = FactoryGirl.create(:lesson)
request.accept = "application/json"
get :show, {:id => lesson.to_param, :location_id => lesson.location_id}, valid_session
response.body.should eq lesson.to_json

结果:

expected: "{\"id\":1,\"location_id\":1,\"day_number\":5,\"time\":\"17:00\",\"min_age\":4,\"max_age\":10,\"created_at\":\"2013-10-02T00:51:53.870+03:00\",\"updated_at\":\"2013-10-02T00:51:53.870+03:00\"}"
got: "{\"id\":1,\"location_id\":1,\"day_number\":5,\"time\":\"17:00\",\"min_age\":4,\"max_age\":10,\"created_at\":\"2013-10-02T00:51:53.000+03:00\",\"updated_at\":\"2013-10-02T00:51:53.000+03:00\"}"

请注意,除了期望中的 870 毫秒(和实际结果中的 000)之外,这两个字符串是相等的。

我如何测试它?

最佳答案

我通过将 json 响应的日期时间与我的对象的 datetime_field.as_json 进行比较,以更好的方式实现了这一点:

expect(json_body).to eq {
order: {
ordered_at: order.ordered_at.as_json

# ... other fields
}
}

关于ruby-on-rails - 使用 rspec 将日期时间字段测试为 JSON 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com