2015-11-26 56 views
0

模擬Time.nowmocha寶石我使用下面的oneliner。Mock Time.now with mocha

require 'minitest/autorun'       
require 'mocha/mini_test'                   
require 'time'          

class TimeMockTest < Minitest::Test     
    def test_time_mock  
    # Mocking Time.now in one line       
    Time.expects(:now).returns(Time.parse('20:12')) 

    Time.now           
    end            
end  

但由於Time.parse()使用的嘲笑Time.now()方法運行此代碼返回以下錯誤。

NoMethodError: undefined method `year' for nil:NilClass 
    C:/Ruby22-x64/lib/ruby/2.2.0/time.rb:255:in `make_time' 
    C:/Ruby22-x64/lib/ruby/2.2.0/time.rb:364:in `parse' 
    time_mock.rb:8:in `test_time_mock' 

你如何用mocha模擬Time.now?

回答