添加额外的文档到rspec输出

时间:2012-10-24 13:05:05

标签: ruby-on-rails rspec

因此,虽然我喜欢Cucumber的集成测试可读性,并且能够为我们提供文档,我们可以轻松地与客户共享,但从开发和测试速度的角度来看,我也觉得它很麻烦。

我今天想到,如果我可以将消息打印成记录了"步骤"的RSpec文档格式,那么我可以轻松地复制Gherkin的业务功能,但是在RSpec的简单性方面。但我无法找到一种方法来做到这一点。

我想要的是采取这样的方式:

describe "Login and Authorization Tests" do
  before (:each) do
    docs "Given I have a user"
    @user = FactoryGirl.create(:user)
  end

  it "A user can belong to one or more user roles" do
    docs "And the user has no roles assigned"
    @user.roles.length.should eq 0
    docs "When I add two roles"
    @user.roles << FactoryGirl.create(:role)
    @user.roles << FactoryGirl.create(:role)

    @user.reload
    docs "Then the user should have two roles assigned"
    @user.roles.length.should eq 2        
  end
end

并在文档

中获取
User
  Login and Authorization Tests
    A user can belong to one or more user roles
      Given I have a user
      And the user has no roles assigned"
      When I add two roles
      Then the user should have two roles assigned

请注意&#34;之前的消息&#34;也显示在文档中,并且会在它下面的每个测试中显示该行。

我想要分析是否可以添加这样的东西,但在我这样做之前,是否有人知道这样的事情是否可能已经存在?

2 个答案:

答案 0 :(得分:3)

我还联系了RSpec开发团队,并在那里发布了一个名为rspec-longrun的附加组件,可以为此重新调整用途。我还没有机会尝试它,但看起来很有希望。作为奖励,它包括时间信息。

rspec-longrun:https://github.com/mdub/rspec-longrun

rspec-dev上的线程:https://github.com/rspec/rspec-dev/issues/34

答案 1 :(得分:0)

你可以尝试Steak,但区别并不大。 或者您可以尝试使用RSpec匹配器的黄瓜。在最后一种情况下,您可以分叉RSpec并添加新的formatter