为什么我的测试不起作用?

时间:2015-01-18 01:45:01

标签: ruby tdd

我不太明白为什么我的测试没有运行。如果我将它包含在calc.rb文件中,它就可以工作。但是,当我拆分测试并尝试在test_calc.rb中运行它时,文件不会运行。我收到以下错误:

/.rvm/rubies/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from test_fall.rb:6:in `<class:TestAdd>'
from test_fall.rb:4:in `<main>'

我不太明白为什么要查看2.1.4目录中的文件。

calc.rb

class Calc
  def add(a, b)
    a + b 
  end
end

test_calc.rb

 require 'calc.rb'
 require 'minitest/autorun'

 class TestAdd < Minitest::Test

  def test_add
    calc = Calc.new
    expected = calc.add 3,2 
    assert_equal expected, 5
  end

  def test_add_bigint
    calc = Calc.new
    val = calc.add 10000000, 10000000 
    assert_equal val, 20000000
  end
end

1 个答案:

答案 0 :(得分:3)

尝试使用require_relative。这很可能与您的代码库所在的目录结构以及测试/规范所在的位置有关。我非常确定ruby首先查看同一目录,然后继续进入垃圾箱。

如果您将这些文件夹放在不同的文件夹中,请尝试将它们添加到同一文件夹并运行测试。如果您想了解有关require_relative的更多信息,可以找到它here

让我们知道它是否有效。如果没有,请向我们展示您的目录树以及文件所在的位置。