我必须将我前一段时间写的一个简单的红宝石测试转换为RSpec测试的#mapper方法。
此方法非常数据驱动,需要将大量输入和输出数据存储在CSV和YAML外部数据文件的组合中。
目前这是一个独立于ruby的环境,但很快就会集成到rails项目中。
这是一些伪代码:
# current test algorithm
inputs = data_load :inputs
meta_maps = data_load :meta_maps
meta_maps.each do |meta_map_name, meta_map|
outputs = data_load "outputs_#{meta_map_name}"
outputs.each do | output |
next if output_data_not_available(output)
test_name = output[:test_name]
input = inputs[test_name]
test test_name, output, mapper(input, meta_map)
end
end
data_load
函数加载CSV或YAML文件并将其作为类似哈希的文件返回。
test
函数使用当前input
调用mapper函数,并将其返回的内容与当前output
进行比较,并使用test_name
记录结果。
真正的问题是我必须使用外部文件(按照规范 - 并且它们不受我的控制)
我是RSpec的新手,但对它有基本的了解,但我之前没有使用过灯具或工厂类型设置,而且确实需要一种方法将CSV和YAML文件以最“RSpec方式”集成到RSpec测试中
答案 0 :(得分:0)
您可以“阅读精细手册”了解RSpec中设置数据的所有方法:
由于RSpec位于Ruby之上,因此您可以访问Ruby的所有功能,以设置测试所需的任何数据。