我有以下使用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
答案 0 :(得分:0)
aruba-rspec允许您指定任意命令行工具,包括您可能编写的独立ruby文件。
您还可以重构此代码,使其不仅仅是一个代码块。例如,将读取输入的部分与执行计算的部分分开,并像通常那样测试这些部件