【问题标题】:alias 'it' in rspecrspec中的别名'it'
【发布时间】:2012-09-01 07:19:14
【问题描述】:

我正在尝试在 rspec 中为 ROR 应用程序编写一些测试(不是为了代码覆盖,但在此无关),并且至少需要为 describe 和它起别名。我可以别名描述就好了,因为它在顶层。但是,我无法让其他任何工作。喜欢这个人:

module RSpec
  module Core
    class ExampleGroupMethods
      alias :they :it
    end
  end
end

我将它包含在规范文件中,但我没有得到正确的模块路径。我查看了 rspec 代码库,但遇到了困难,所以我认为我不太清楚自己在做什么。任何提示或资源将不胜感激。

【问题讨论】:

    标签: ruby-on-rails rspec rspec-rails


    【解决方案1】:

    您似乎想使用define_example_method。这就是 RSpec 定义示例组方法的方式,例如 itspecify,它们实际上只是彼此的别名。不确定是否有经过批准的 API 可以利用它,但您应该能够执行以下操作:

    module RSpec
      module Core
        class ExampleGroupMethods
          class << self
            define_example_method :they
          end
        end
      end
    end
    

    【讨论】:

    • 是的,我昨晚看到了,但不确定它是否真的像看起来那样,但我猜我是对的。但是,我尝试了并得到“# (NoMethodError) 的未定义方法‘define_example_method’”,这与我似乎总是碰到的砖墙相同。看起来应该可以,但我不明白为什么不可以。
    • 你把这段代码放在哪里,你在它之前的任何地方都需要 rspec-core 吗?
    【解决方案2】:

    你想使用alias_example_to:

    RSpec.configure do |c|
      c.alias_example_to :they
    end
    

    这是 RSpec 的公共 API 的一部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 1970-01-01
      • 2021-02-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多