假设我有一个看起来像这样的方法:
def raise_if_client_status_error(xml_resp) # xml_resp is Nokogiri::XML object
unless xml_resp.at('StatusCode').text == 'Success'
raise ClientError, xml_resp.at('StatusMessage').text
end
end
是否可以创建xml_resp_mock并存根链式调用.at('StatusCode').text
以返回"Success"?如果可能的话,我不确定该使用什么语法。
在测试中没有必要模拟Nokogiri,因为它没有表现出在c2上模拟的任何原因或在维基百科上使用的任何原因。最好传入一个带有<StatusCode>Success</StatusCode>
的文档。最好模拟通常从网络读取xml响应的对象的方法。