如何在使用gets时制作spec文件

时间:2014-06-08 00:19:13

标签: ruby rspec

我有以下使用gets的代码。现在我想制作一个spec文件。通常我为class或def制作一个spec文件,但我不知道在这种情况下如何做。我可以使用gets?

为文件制作spec文件

我感谢任何投入。

while n = gets.to_i
  break if n.zero?
  dataset = {}
  dataset.default = 0
  n.times do 
    id, price, quantity = gets.split.map(&:to_i)
    dataset[id] += price * quantity
  end
  more_than_mil =  dataset.select { |key, val| val >= 1_000_000 }.keys
  puts more_than_mil.empty? ? "NA" : more_than_mil
end

上述代码的输入。

1001 2000 520
1002 1800 450
1003 1600 625
1001 200 1220
2
1001 100 3
1005 1000 100
2
2013 5000 100
2013 5000 100
0

输出

1001
1003
NA
2013

1 个答案:

答案 0 :(得分:0)

aruba-rspec允许您指定任意命令行工具,包括您可能编写的独立ruby文件。

您还可以重构此代码,使其不仅仅是一个代码块。例如,将读取输入的部分与执行计算的部分分开,并像通常那样测试这些部件