让 Rspec 识别 Capybara 特价商品的宏

nul*_*ull 4 rspec config ruby-on-rails capybara

将宏添加到 Rspec 的配置时,您必须指定它将被访问的测试类型。例如,您可以键入:

config.extend ControllerMacros, :type => :controller
Run Code Online (Sandbox Code Playgroud)

你如何让它与 Capybara 一起工作,它的类型 (:feature) 似乎不被Rspec 的 config识别。尝试这样的事情是行不通的:

config.extend FeatureMacros, :type => :feature
Run Code Online (Sandbox Code Playgroud)

Bil*_*han 5

我不知道你为什么打字extend,我所有的设置都是include有效的。

RSpec.configure do |config|
  # ... others

  # Session helpers - For Capybara
  config.include Features::SessionHelpers, type: :feature

  # Controller helpers
  config.include ControllerMacros, type: :controller

end 
Run Code Online (Sandbox Code Playgroud)

并且模块文件在spec/support. 如果是子模块,它们位于子文件夹中,如`spec/support/features/

Capybara 助手示例

# spec/support/features/session_helpers.rb
require 'spec_helper'

module Features
  module SessionHelpers

    def user_sign_in
    end
  end
end
Run Code Online (Sandbox Code Playgroud)