Rspec字符串截断的最佳解决方法是什么?

时间:2019-10-30 20:01:24

标签: ruby rspec

我正在寻找解决此RSpec错误功能的方法:https://github.com/rspec/rspec-core/issues/2535

在两个长字符串上的RSpec相等声明可能会导致字符串的不同部分被忽略。

例如,如果期望值为:

"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

,实际值为:

"aaaaaaaaaaaaaaaaaaaaaaaaaaaAaaaaaaaaaaaaaaaaaaaaaaaa"```

输出可能是:

 Failure/Error: expect(g.to_whitespace_escaped_xwiki).to eq(expect)

   expected: "aaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaa"
        got: "aaaaaaaaaaaaaaaa...aaaaaaaaaaaaaaaaaaa"
   (compared using ==)

不同的部分不会输出。

2 个答案:

答案 0 :(得分:0)

那怎么办?

*** Variables ***
${JOHN HOME}    /home/john
${JANE HOME}    /home/jane

*** Test Cases ***
Example
    ${name} =    Get Name
    Do X    ${${name} HOME}

答案 1 :(得分:0)

RSpec的设置可以设置格式化对象时将打印的最大字符长度:

RSpec.configure do |rspec|
  rspec.expect_with :rspec do |c|
    c.max_formatted_output_length = nil
  end
end

您可以将长度设置为nil,以防止RSpec进行截断。 将其设置为整数将更改格式化输出中的最大字符数(默认为200)。

文档:http://rspec.info/documentation/3.9/rspec-expectations/RSpec/Expectations/Configuration.html#max_formatted_output_length=-instance_method