0

我必须将我前段时间为一个名为#mapper 的方法编写的一个简单的ruby 测试转换为一个RSpec 测试。

这种方法是非常数据驱动的,需要大量的输入和输出数据存储在 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并将其返回的内容与当前进行比较,output并使用test_name.

真正的问题是我必须使用外部文件(根据规范 - 它们不在我的控制之下)

我是 RSpec 的新手,但对它有基本的了解,但我之前没有使用过夹具或工厂类型设置,并且确实需要一种方法以尽可能“RSpec 方式”将 CSV 和 YAML 文件集成到 RSpec 测试中。

4

1 回答 1

0

您可以“阅读精美手册”了解在 RSpec 中设置数据的所有方式:

由于 RSpec 位于 Ruby 之上,因此您可以访问 Ruby 的所有功能来设置测试所需的任何数据。

于 2012-06-01T10:17:57.893 回答