我正在嘗試運行一個單元測試。在rails中測試時出錯
測試需要有require_relative 'francis'
require 'minitest/autorun'
require_relative 'francis'
class FrancisTest < MiniTest::Test
,當我嘗試運行rake test TEST=test/francis_test.rb
我得到的
(in C:/Users/chris2/Documents/RailsProjects/francis)
rake aborted!
LoadError: cannot load such file -- C:/Users/chris2/Documents/RailsProjects/francis/test/francis
C:/Users/chris2/Documents/RailsProjects/francis/test/francis_test.rb:2:in `require_relative'
C:/Users/chris2/Documents/RailsProjects/francis/test/francis_test.rb:2:in `<top (required)>'
Tasks: TOP => test:single
(See full trace by running task with --trace)
錯誤我怎樣才能運行這個測試?
更新
我搬到francis_test.rb到項目的根。我也說了require_relative聲明,我也不得不設置行更改爲@teen = ::Franci.new
而不是Francis.new
所以francis_test的開頭看上去像
require 'minitest/autorun'
# require_relative 'franci'
require 'test_helper'
class FrancisTest < MiniTest::Test
attr_reader :teen
def setup
@teen = ::Franci.new
end
def test_stating
assert_equal 'Whatevs.', teen.yo('Oh blah di, oh blah da.')
end
def test_yelling
assert_equal 'Chill!', teen.yo('GOOOAAAALLL!')
end
我似乎需要要求「test_helper」 。
順便說一句 - 我的Ruby和Rails版本
Rails 4.2.5.1
ruby 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
現在,如果我跑rake test TEST=francis_test.rb -v
我看到的(部分)
# Running:
FrancisTest#test_stating_with_acronyms = 0.01 s = E
FrancisTest#test_inquiring = 0.00 s = E
FrancisTest#test_question_with_just_numbers = 0.00 s = E
. . .
Finished in 0.013518s, 1257.5400 runs/s, 0.0000 assertions/s.
1) Error:
FrancisTest#test_stating_with_acronyms:
ArgumentError: wrong number of arguments (1 for 0)
2) Error:
FrancisTest#test_inquiring:
ArgumentError: wrong number of arguments (1 for 0)
幾個問題
- 在attr_reader中有效Ruby 2.2.4?我查看了API,但無法理解它。
- 爲什麼我會得到'錯誤的參數數'?我沒有使用attr_reader,但似乎按照我的方式進行調用時,應該將參數傳遞給teen.yo.
順便說一句 - 弗朗西斯表只有一列 - '喲'。
你確定francis_test文件在測試文件夾下嗎? –