2013-06-25 45 views
0

在RSpec中,我可以給出示例的別名。例如,alias_example_to。 是否有任何方法混淆示例組?我只能使用describecontext。但我想使用,比如feature,scenario ......等。例如,別名示例組

describe MyObject do 
    scenario "doing smth with object" do 
    ... 
    end 
end 

我在http://benediktdeicke.com/2013/01/custom-rspec-example-groups/上找到了一篇文章。 是否有任何其他方式來別名示例組。

回答

1

可能的解決方法,直到特徵被釋放是這樣的:

# spec/support/example_group_aliases.rb 
module ExampleGroupAliases 
    extend ActiveSupport::Concern 

    included do 
    class << self 
     alias_method :simple, :context 
    end 
    end 

    module ClassMethods 
    def fancy(description, options = {}, &block) 
     context(description, options.merge(:fancy => true), &block) 
    end 
    end 

    RSpec.configure do |config| 
    config.include self 
    end 
end 

的代碼顯示限定用於context方法別名的方法有兩種。第一個(simple)使用alias_method。第二個(fancy)定義了一個新方法,然後調用原始方法context。最後一種方法可以讓你做更多的事情,比如添加更多的選項。

+0

它不起作用。也許是因爲我的項目不是Rails項目,它是一個純粹的Ruby項目。我正在寫一個寶石。有什麼建議麼? – fade2black

+0

瞭解它,它工作。只需在spec/support/example_group_aliases.rb中添加=> require'active_support/concern'即可。現在,我可以編寫更多可讀的規格。不幸的是,由於我的聲望不到15,我無法回答你的答案。無論如何,感謝Peter Alfvin和Benedikt Deicke。 – fade2black

+0

你能舉一個例子,我可以使用第二個(花哨)?我無法想象我可以使用它。 – fade2black