2012-05-30 17 views
0

我必須將一段時間前寫過的簡單ruby測試(稱爲#mapper)轉換爲RSpec測試。將使用CSV和YAML數據文件的方法進行簡單的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,但有它的基本的瞭解,但我沒有用夾具或工廠類型設置,並且確實需要一種將CSV和YAML文件以最「RSpec」方式集成到RSpec測試中的方法。

回答

0

可以 「閱讀小手冊」 爲所有你可以從內部RSpec的設置數據的方法:

由於RSpec的是分層在Ruby之上,您可以訪問Ruby的所有功能來設置測試所需的任何數據。

+0

我有RTFM,而且我看過的內容似乎都沒有直接適用於這種情況。我正在尋找一些在這方面有經驗的人,可能會提供一些指導方針或建議。更重要的是,我一直在尋找RSpec友好的方法。 IOW,我不想把這些垃圾搞糊塗了。 – danv