Capybara provides a number of helpful matchers for asserting against a
DOM structure with various selectors. RSpec's view specs focus on
asserting against specific markup; this change ensures this is easier
to do.
RSpec.describe "todos/show.html.erb", type: :view do
it "displays the todo title" do
assign :todo, Todo.new(title: "Buy milk")
render
# without Capybara matchers - potentially ambiguous, doesn't
# test markup, only raw text rendered
expect(rendered).to contain "Buy milk"
# with Capybara matchers
expect(rendered).to have_css("header h1", text: "Buy milk")
end
end