RSpec误报 - 这怎么可能?

时间:2013-02-05 13:33:08

标签: ruby-on-rails ruby-on-rails-3 rspec rspec2

RSpec在我的帮助页面上说一切都很好,但不应该这样。什么会导致误报。 (我已多次重新启动我的测试套件。)

这是我的规格页面:

require 'spec_helper'

describe "Static pages" do

  subject { page }

  shared_examples_for "all static pages" do
    it { should have_selector 'h1',    text: heading }
    it { should have_selector 'title', text: full_title(page_title) }
  end

.
.
.

  describe "Help page" do
    before { visit help_path }

    let(:heading) { 'Help' }
    let(:page_title) { 'Help' }
  end

.
.
.

end

这是我的帮助页面:

<% provide(:title, '') %>
<h1></h1>
<p>
  Get help on the Ruby on Rails Tutorial at the
  <a href="http://railstutorial.org/help">Rails Tutorial help page</a>.
  To get help on this sample app, see the
  <a href="http://railstutorial.org/book">Rails Tutorial book</a>.
</p>

它说测试通过了。怎么解决?

1 个答案:

答案 0 :(得分:3)

看起来你错过了:

it_should_behave_like 'all static pages'
describe 'Help Page'块中的

。您已经为“所有静态页面”定义了共享示例,但没有告诉rspec“帮助页面”应该像一个行为。

另外,请查看this answer非常相似的问题。它显示了如何重构您的规范以更清楚地表达意图。