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

Why isn't my test working?

我不太明白为什么我的测试没有 运行ning。如果我将它包含在 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

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

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

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