我试图写一些简洁的RSpec测试。测试如下:
require 'spec_helper'
describe Video::Base do
subject { Video::Base }
its(:base_uri) { should match(/api\.wistia\.com/) }
its(:base_uri) { should match(/https/) }
its(:format) { should == :json }
describe :default_params do
its([:api_password]) { should_not be_nil }
end
end
测试看起来很不错,但describe :default_params
失败了。我知道RSpec能够调用its([api_password])
,但问题是目标必须是哈希。在此示例中,您看到我正在调用Video::Base
类而不是#default_params
方法的密钥。如何设置它以its([deafult_params])
拨打Video::Base.default_params
而不是Video::Base
?
答案 0 :(得分:2)
您需要覆盖主题:
describe :default_params do
subject { Video::Base.default_params }
its([:api_password]) { should_not be_nil }
end
或者,为了获得更大的灵活性,请使用super
:
describe :default_params do
subject { super().default_params }
its([:api_password]) { should_not be_nil }
end