Ruby 红地毯宝石的新行错误

Ruby 红地毯宝石的新行错误,ruby,markdown,rspec-rails,redcarpet,ruby-on-rails-5.2,Ruby,Markdown,Rspec Rails,Redcarpet,Ruby On Rails 5.2,我的ApplicationHelper中有一个降价方法,我想编写一个简单的单元测试: 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('#

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

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"
如何使单元测试通过

Ruby 2.5.1 | Rspec 3.7.0 | Rails 5.2 |红地毯3.4

序列\n仅在换行符位于双引号之间时被解析为换行符的转义码:\n。在单引号中,它只是一个文本\和一个文本n

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

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