2015-11-27 113 views
0

運行我的Minitest文件時,我的整個Ruby程序會運行並提示用戶輸入。這裏輸入的任何值都不會在測試中使用。運行Minitest時防止用戶輸入

運行測試文件時,是否有隱藏/忽略所有用戶提示的方法?是否也可以運行正在測試的單個方法,而不是整個程序?

命令用來運行MINITEST文件: 紅寶石-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

什麼的'calc.rb'做你最喜歡的東西? – Tobias

回答

0

根據你所說的話和您發佈的測試中,我我猜你的程序沒有定義MarkupCalc類,而amount_inputflat_markupnum_workers等方法是頂級方法。要做到你的要求,你需要創建一個類,如:

class MarkupCalc 
    def self.amount_input(name) 
    # ... 
    end 

    def self.flat_markup(amount) 
    # ... 
    end 

    def self.num_workers(num) 
    # ... 
    end 
end 

然後重寫你的測試來調用相應的方法:

class TestMarkupCalc < Minitest::Test 
    def test_amount_input_for_float 
    assert_kind_of(Float, MarkupCalc.amount_input("price") 
    end 

    # ... 
end