2017-09-21 62 views
0

我正在嘗試運行一個單元測試。在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) 

幾個問題

  1. 在attr_reader中有效Ruby 2.2.4?我查看了API,但無法理解它。
  2. 爲什麼我會得到'錯誤的參數數'?我沒有使用attr_reader,但似乎按照我的方式進行調用時,應該將參數傳遞給teen.yo.

順便說一句 - 弗朗西斯表只有一列 - '喲'。

+0

你確定francis_test文件在測試文件夾下嗎? –

回答

0

require_relative補充了內置方法的要求,允許您加載與包含require_relative語句的文件相關的文件。

例如,如果您有測試下他們在「測試」目錄單元測試類和數據「的測試/ data」目錄,那麼你可能會使用這樣的線在測試案例:

require_relative "data/customer_data_1" 
0

是attr_reader在Ruby 2.2.4中有效嗎?我看了一下這個API,但是不能很好地理解它。

Yes, it is。但是你不需要它,因爲ActiveRecord自動將列作爲屬性提供。

爲什麼我得到'錯誤的參數數'?我沒有使用過attr_reader,但似乎按照我的方式進行調用時,應該將 傳遞給teen.yo.

要回答這個問題,我需要你的francis.rb文件的內容。