0
我有一個方法#get_something
,它返回一個複雜的對象。我想檢查一下,如果這個複雜對象的特定公共屬性包含一個字符串。檢查rspec中的複雜結果
這就是我知道我可以測試:
require 'rspec/autorun'
class MySubject
ComplexObject = Struct.new(:type, :trustworthiness)
def get_something
ComplexObject.new('serious', 100)
end
end
RSpec.describe MySubject do
describe '#get_something' do
it 'returns an serious object' do
expect(subject.get_something.type).to eq('serious')
end
it 'returns an trustworthy object' do
expect(subject.get_something.trustworthiness).to be > 90
end
end
end
我不知道是否有寫這樣的期待道:
expect(subject.get_something).to have_attribute(:type).to eq('serious')
expect(subject.get_something).to have_attribute(:trustworthiness).to be > 90
這背後的原因是,我想爲了表明我對#get_something
的結果感興趣,而不是在ComplexObject
實例中。
這個場景是否已經有一個匹配器?如果不是,你會如何編寫這個規範,特別是當你有興趣不止一個屬性設置正確時?
在此先感謝