未定义的rspec方法,可能需要不正确?

时间:2014-08-21 03:45:11

标签: ruby rspec

有人能告诉我这里我做错了什么吗?

在我的test.rb文件

class Test
  def sum(a, b)
    a + b
  end
end

在我的setup.rb文件

require 'rspec/expectations'
require_relative 'test'

test = Test.new

result = test.sum 1, 2

expected = 3
expect(result).to eql(expected)

当我在终端上运行“ruby setup.rb”时,它给了我

setup.rb:12:in `<main>': undefined method `expect' for main:Object (NoMethodError)

我试过要求'rspec',这也给了我同样的错误。我正确要求我的lib吗?

1 个答案:

答案 0 :(得分:0)

Rspec仅仅因为需要而不会污染全局命名空间。

如果您加入RSpec::Matchers,那么您应该可以致电expect

虽然可以像这样自己使用rspec的比特,如果你刚开始使用rspec,它可能不是你想要的。你可能想要所有的rspec并创建实际的规格,即

RSpec.describe Test do
  it "should ..."
    expect(Test.new.sum(1,2)).to eq(3)
  end 
end

有很多入门的rspec教程可以帮助你入门。 rspec-core readme有一个例子,它正是你正在做的