无法覆盖RSpec Sysntax模块方法

时间:2017-09-11 15:45:45

标签: ruby rspec override

我想在Syntax模块下覆盖expect。所以,我已将下面的代码放入.config / initializers / syntax.rb文件

 module RSpec
  module Expectations
    module Syntax
      def enable_expect(syntax_host=::RSpec::Matchers)
        return if expect_enabled?(syntax_host)

        syntax_host.module_exec do
          def expect(value=::RSpec::Expectations::ExpectationTarget::UndefinedValue, &block)
            ::RSpec::Expectations::ExpectationTarget.for(value, block)
          end
        end
      end
    end
  end
end

在env.rb文件中需要这个。

require_relative '../../.config/initializers/syntax'

这不会覆盖现有方法。我正在使用RSpec gem 3.2.0

配置出了什么问题?

1 个答案:

答案 0 :(得分:1)

我建议您将此覆盖代码放在 spec / support 目录中,并在 rails或spec helper 中使用它,而不是放入初始值设定项。