3

因此,虽然我喜欢 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

请注意,来自“之前”的消息也显示在文档中,并且会在其下方的每个测试中显示该行。

我正在考虑分叉,看看我是否可以添加这样的东西,但在我这样做之前,有谁知道这样的事情是否已经可行?

4

2 回答 2

3

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

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

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

于 2012-11-08T13:33:17.010 回答
0

你可以试试Steak,但差别不大。或者你可以试试 Cucumber 和 RSpec 匹配器。在最后一种情况下,您可以分叉 RSpec 并添加一个新的格式化程序

于 2012-10-24T13:12:53.847 回答