红地毯宝石的新行错误



我的ApplicationHelper中有一个#markdown方法,我想编写一个简单的单元测试:

def markdown(text)
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML)
markdown.render(text).html_safe # tried wihout html_safe too
end

每当我编写RSpec测试时,它总是失败。我用三种不同的方式尝试了它:

expect(helper.markdown('# Header')).to eq('<h1>Header</h1>')
# => expected: "<h1>Header</h1>" but got: "<h1>Header</h1>n"
expect(helper.markdown('# Header')).to eq('<h1>Header</h1>n')
# => expected: "<h1>Header</h1>\n" got: "<h1>Header</h1>n"
expect(helper.markdown('# Header').delete_suffix('n')).to eq('<h1>Header</h1>')
# => expected: "<h1>Header</h1>" got: "<h1>Header</h1>n"

如何使此单元测试通过?

红宝石 2.5.1 |Rspec 3.7.0 |导轨 5.2 |红地毯 3.4

序列n仅在双引号之间时解析为换行符的转义代码:"n"。在单引号中,它只是一个字面和一个字面n

要使测试通过,您只需要在字符串中使用双引号和n

expect(helper.markdown('# Header')).to eq("<h1>Header</h1>n")

相关内容

  • 没有找到相关文章

最新更新