运行我的Minitest文件时,我的整个Ruby程序都会运行并提示用户输入。此处输入的任何值都不会在测试中使用。
运行测试文件时是否有隐藏/忽略所有用户提示的方法?是否也可以只运行正在测试的各个方法,而不是整个程序?
用于运行Minitest文件的命令: ruby -Itest test_calc.rb
test_calc.rb:
require './calc'
require 'minitest/autorun'
class TestMarkupCalc < Minitest::Test
def test_amount_input_for_float
assert_kind_of(Float, amount_input("price"))
end
def test_amount_input_for_integer
assert_kind_of(Integer, amount_input("number"))
end
def test_flat_markup
assert_equal(1050, flat_markup(1000))
end
def test_num_workers_markup
assert_equal(0.06, num_workers(5))
end
end
答案 0 :(得分:0)
根据您所说的内容以及您发布的测试,我猜您的程序没有定义MarkupCalc
类以及amount_input
,{{1}等方法}}和flat_markup
是顶级方法。要做你要求的事情,你需要创建一个类:
num_workers
然后重写测试以相应地调用方法:
class MarkupCalc
def self.amount_input(name)
# ...
end
def self.flat_markup(amount)
# ...
end
def self.num_workers(num)
# ...
end
end