使用let()辅助函数时Rspec中的命名空间问题

时间:2013-01-06 21:10:29

标签: ruby rspec namespaces

我在使用rspec提供的let函数时遇到了问题:

在app / spec / class_spec.rb中:

require 'spec_helper'
module App
   describe Class do
      let(:instance) {Class.new('param')}

      describe "#method" do
         it "does something" do
            instance.method(...)
            # clever test code
         end
      .
      .
      .
end

我一直在关注RSpec的书,根据它的例子(通过了!),让我可以访问变量实例,以便其余的描述类'块。但是我得到了错误:

Uninitialized constant App::instance

我也尝试添加此代码无效:

before :all do
    instance
end

我做错了什么?

1 个答案:

答案 0 :(得分:1)

而不是

module App
   describe Class do

只需使用:

describe App::Class

一切都应该没问题 提示:而不是let(:instance) {Class.new('param')}你可以写let(:instance) {described_class.new('param')}。它更聪明。