如何使用RSpec测试在类定义时调用的类方法是否被执行?

时间:2013-11-18 01:10:01

标签: ruby rspec class-method

如何编写测试以确保::base_uriMyClass的类定义的一部分?示例代码如下。

require 'httparty'

class MyClass
  include HTTParty

  base_uri 'https://www.google.com'
end

describe MyClass do
  it "should call base_uri" do
    MyClass.should_receive(:base_uri)
    MyClass.new
  end
end

1 个答案:

答案 0 :(得分:1)

首先,我建议您在有疑问时查看您的gem如何实现/测试您调用的代码。这就是HTTParty的#base_uri代码的测试方法。 然后你可以写。

  it 'should have this base uri' do
     MyClass.base_uri.should == 'my_base_uri'
  end

我认为在您的课程中测试#base_uri的测试不会给您保证它会按预期工作。我更喜欢测试值是否真的被填充,而不是方法调用。