Ruby单元测试(gets.chomp)

时间:2014-03-19 11:49:59

标签: ruby unit-testing refactoring

我有红宝石课:

class Sample
  def main
    zipcode = gets.chomp

    if correct_length?(zipcode)
    end

  end

  def correct_length?(string)
    true if string.size == 5
  end
end

instance = Sample.new
instance.main

并测试它:

require_relative 'sample'
require 'test/unit'

class TestSample < Test::Unit::TestCase
  def test_correct_length?
    zipcode = '10234'
    assert_equal(true, Sample.new.correct_length?(zipcode))
  end
end

我想测试 correct_length?方法。当我运行测试时,我必须在测试开始前输入一些字符。我应该如何重写这个例子来测试一个方法(不运行 gets.chomp

1 个答案:

答案 0 :(得分:2)

围绕使用main致电if __FILE__ == $0 ... end的部分;如果运行test,则在执行部件时如果脚本作为入口点执行,则不会执行该部件。

if __FILE__ == $0
  instance = Sample.new
  instance.main
end