【问题标题】:New line error for Redcarpet gemRedcarpet gem 的新行错误
【发布时间】:2018-06-30 21:13:14
【问题描述】:

我的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

【问题讨论】:

    标签: ruby markdown rspec-rails redcarpet ruby-on-rails-5.2


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多