我仍然是新的顶级游戏,所以请原谅这是否容易,但我无法在Google上找到答案。我有一个库模块,用于处理从API响应中解析一些数据。我已经编写了测试,并且一切正常,但是我想将假的API响应数据移动到外部文件中,因为它很长并且使得测试更难以阅读。我看了固定装置和工厂,但这些都是模型,这只是一个非常长的xml片段。我目前的测试看起来像这样
describe :my_test do
let(:my_var) { REALLY_LONG_XML_SNIPPET}
....test code...
end
如何将REALLY_LONG_XML_SNIPPET移动到外部文件中?
答案 0 :(得分:10)
这是我在我的规范中使用的:
let(:doc) { IO.read(Rails.root.join("spec", "fixtures", "api_response.xml")) }
它会将文件的内容复制到字符串中。
请注意,我已关闭RSpec的默认ActiveRecord灯具,因此我将灯具放在该目录中。
使用Rspec Rails 3.5及更新版更新
也可以使用file_fixture
let(:doc) { file_fixture("api_response.xml").read }
的
默认情况下存储在spec / fixtures / files中的文件
但可以自定义文件位置。