【发布时间】:2012-10-30 09:48:50
【问题描述】:
我需要测试以下一行:
result = handle(streamOfMessages)
messages 和 context 是填充良好的哈希值。我可以这样写it:
messages1 = [ {"type"=>"someType1","value"=>"someBigHash1"}, {"type"=>"someType2","value"=>"someBigHash2"}, {"type"=>"someType1","value"=>"someBigHash3"} ]
result1 = handle(messages1)
result1.should == [someValue1, someOtherValue1]
messages2 = [ {"type"=>"someType1","value"=>"someBigHash1"}, {"type"=>"someType2","value"=>"someBigHash2"}, {"type"=>"someType1","value"=>"someBigHash3"} ]
result2 = handle(messages1)
result2.should == [someValue2, someOtherValue2]
// same about messages3, result3 etc
我可以创建一个数组并在循环中引用messages[i]。然而,在我看来,这一切都是一种非常古老的方法,因此我正在寻找一种更具启发性(或者我什至应该说是基于 DSL)的编程风格。如果有一个更好的语法来构建消息流和迭代多个流同时期望不同的结果,那就太好了。
【问题讨论】:
标签: ruby unit-testing rspec dsl