当使用JSON运行测试时,rspec没有显示完整的规范,因此我无法看到返回和预期之间的差异。
使用 ...
缩短差异信息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\"}]}"
aut ... 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
您用来检查测试的宝石/插件或期望是什么?
我使用控制台和Rubymine IDE。
现在我用:
puts "1 --> #{subject.to_json}"
puts "2 --> #{expected}"
而且我不想写这个以试验我的测试。
答案 0 :(得分:2)
这可能会有所帮助:https://github.com/waterlink/rspec-json_expectations
作为奖励,它允许您根据属性的子集指定测试,这些属性可用于创建更精细的测试。
答案 1 :(得分:2)
将 RSpec::Support::ObjectFormatter.default_instance.max_formatted_output_length
设置为高值
更新:正如 Yurri 建议的那样,最好将其设置为 nil