我正在寻找解决此 RSpec 错误功能的方法:https://github.com/rspec/rspec-core/issues/2535。
对两个较长的字符串进行 RSpec 相等断言可能会导致字符串的不同部分被忽略。
例如,如果期望值为:
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
Run Code Online (Sandbox Code Playgroud)
实际值为:
"aaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaaaaaaaaaaaaaaaaaa"```
Run Code Online (Sandbox Code Playgroud)
输出可能是:
Failure/Error: expect(g.to_whitespace_escaped_xwiki).to eq(expect)
expected: "aaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaa"
got: "aaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaa"
(compared using ==)
Run Code Online (Sandbox Code Playgroud)
不输出不同的部分。
RSpec 有一个设置来设置格式化对象时打印的最大字符长度:
RSpec.configure do |rspec|
rspec.expect_with :rspec do |c|
c.max_formatted_output_length = nil
end
end
Run Code Online (Sandbox Code Playgroud)
您可以设置 length 以nil防止 RSpec 进行截断。将其设置为整数将更改格式化输出中的最大字符数(200默认情况下)。
| 归档时间: |
|
| 查看次数: |
1590 次 |
| 最近记录: |