【发布时间】:2015-08-21 10:12:33
【问题描述】:
我有一个 API 端点,它返回一个 XML 响应。我想测试该响应的一部分。
我有一个shop 模型,它引用另一个名为shop_contact 的表,它可能为nil,也可能不是nil。它包含 3 列,email、phone 和 fax
我正在嘲笑几家带有虚假联系人的商店,我想测试 XML 响应 <shop_contact>至少包含这些标签(<email>、<phone>或<fax>)和它不是空的。
我试过了:
hash = Hash.from_xml(response.body)
hash["shops"]["shop"].each do |shop|
expect(shop["shop_contact"]["email"] ||
shop["shop_contact"]["phone"] ||
shop["shop_contact"]["fax"]).to_not be_empty
end
但我收到此错误:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.empty? (NoMethodError)
有什么想法吗?
【问题讨论】:
标签: ruby-on-rails xml rspec cucumber