RSpec 检查标题

RSpec check title

请帮助我。我需要用 rspec、水豚测试视图标题。我有规格:

require 'rails_helper'
  RSpec.describe 'static_pages/home' do
  it "display correct title" do
    render

    expect(response).to have_title('Home page')
  end
end

home.html.erb:

<!DOCTYPE HTML>

<html>
  <head>
    <title>djeje Home pagexbdkek</title>
  </head>
  <body>
    <p>Hello</p>
  </body>
</html>

RSpec 顺利通过, 但我需要检查标题是否与规范中的完全相同,而不仅仅是寻找子字符串。

您可以将其更改为 expect(page).to have_title("Home page", exact: true) 之类的内容,这应该会失败,因为它与页面标题不完全匹配。

Capybara RSpec 匹配器的选项与布尔方法相同 - http://www.rubydoc.info/gems/capybara/Capybara/Node/DocumentMatchers:has_title%3F

从那里你可以看到它需要一个字符串或一个正则表达式,并且有一个 exact 选项。因此,您可以执行以下任一操作

expect(response).to have_title(‘Home page’, exact:true)

或者

expect(response).to have_title(/\AHome page\z/)