当运行JSON测试时,rspec不显示完整规范,所以我看不到回报和期望之间的差异。RSpec不显示回报和预期之间的完全区别
DIFF的消息会被缩短,...
expected: "{\"id\":1,\"number\":1,\"sequential\":1,\"emitted_at\":\"2014-01-01T13:35:21.000Z\",\"status\":\"aut...erenceds_attributes\":[{\"id\":null,\"nfe_key\":\"42150707697707000148550010000020101000020105\"}]}"
got: "{\"id\":1,\"number\":1,\"sequential\":1,\"emitted_at\":\"2014-01-01T13:35:21.000Z\",\"status\":\"aut...erenceds_attributes\":[{\"id\":null,\"nfe_key\":\"42150707697707000148550010000020101000020105\"}]}"
很重... erenceds_attributes看在消息中
我的脚本测试:
RSpec.describe InvoiceSerializer do
let(:invoice) do
build :invoice, :testing_serializer
end
subject { described_class.new invoice }
it "returns a json" do
expected = {
id: 1,
number: 1,
sequential: 1,
emitted_at: "2014-01-01T13:35:21.000Z",
status: "authorized",
invoice_bills_attributes: [{
id: nil,
expire_at: "2014-01-02T00:00:00.000Z",
value: "1.23"
}],
...
}.to_json
expect(subject.to_json).to eq expected
end
end
Example of error in my console
你用什么gem /插件或期望检查你的测试?
我使用控制台和Rubymine IDE。
现在我用:
puts "1 --> #{subject.to_json}"
puts "2 --> #{expected}"
而且我不喜欢写本作以debbug我的测试。
版本的rspec?它是rspec轨道? – Anthony
一个想法:测试'.to_json'方法返回一个String,然后测试它可以通过'JSON.parse'解析。这告诉你你的方法正在返回有效的JSON。然后,使用解析的数据散列,将_that_与预期的散列进行比较。输出结果可能并不完美(现在不能回想起输出结果如何),但是您可以循环遍历散列值,然后比较每个键/值对。这将使你不知道他们之间究竟有什么不同。 – MrDanA
我使用rspec-rails - 3.5.2 – Linielson