12

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

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

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

4

2 回答 2

21

你想使用alias_example_to

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

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

于 2012-09-07T15:14:06.773 回答
2

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

module RSpec
  module Core
    class ExampleGroupMethods
      class << self
        define_example_method :they
      end
    end
  end
end
于 2012-09-07T12:00:52.393 回答