2
class BaseValidator; end
class DefaultValidator < BaseValidator; end
Rspec的3.1:
describe ValidatorFactory do
context "creating DefaultValidator" do
subject { ValidatorFactory.validator('default') }
it {is_expected.to be_a(DefaultValidator)}
it {is_expected.to be_kind_of(BaseValidator) }
end
end
打印我:
Failure/Error: it {is_expected.to be_a(DefaultValidator)}
expected DefaultValidator to be a kind of DefaultValidator
Failure/Error: it {is_expected.to be_kind_of(BaseValidator) }
expected DefaultValidator to be a kind of BaseValidator
然而,這個工程:
...
it {is_expected.to be(DefaultValidator)}
it {is_expected.to be < (BaseValidator) }
...
ValidatorFactory.rb
class ValidatorFactory
def self.validator(type)
case type.downcase
when 'default'
DefaultValidator
else
BaseValidator
end
end
現在,我找不到anythyng約是(),並在RSpec的文檔類類型MACHING是<。
我是否以錯誤的方式使用「be_a」和「be_kind_of」?
這將有助於看到'ValidatorFactory.validator'的實現。請參閱https://www.relishapp.com/rspec/rspec-expectations/v/3-1/docs/built-in-matchers/type-matchers,瞭解失敗的兩個匹配器的文檔。 –
@PeterAlfvin,添加了ValidatorFactory.validator的實現。 – user1463822