运行Minitest时阻止用户输入

时间:2015-11-27 18:06:15

标签: ruby minitest

运行我的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

1 个答案:

答案 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