代码之家  ›  专栏  ›  技术社区  ›  ogirginc

红地毯宝石的新行错误

  •  0
  • ogirginc  · 技术社区  · 6 年前

    我有一个 #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_Redcarpet 3.4

    1 回复  |  直到 6 年前
        1
  •  1
  •   matt    6 年前

    \n "\n" .在单引号中,它只是一个文本 \ 和文字 n .

    要通过测试,只需在字符串中使用双引号, \ N号 以下内容:

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