2017-07-19 50 views
0

如何在Rails中测试非ActiveRecord模型类?在控制台中工作的代码似乎不能转化为测试套件。方法不可用,整个事情似乎不起作用!如何在rails中测试非ActiveRecord模型?

class CalendarEvent 

    def test 
    'Hello World' 
    end 

end 

当我火了控制台,这个工程:

irb> cal_event = CalendarEvent.new 
=> #<CalendarEvent:0x007fb5e3ee9fd0> 
irb> cal_event.test 
=> "Hello World" 

然而,当我写一个测试,似乎模型没有加载。没有可用的功能。

class CalendarEvent < ActiveSupport::TestCase 
    include TestApiHelperPackage 

    test 'validate hello world' do 
    cal_event = CalendarEvent.new 
    assert_equal cal_event.test, 'Hello world' 
    end 
end 

好像不是抓住模型。我必须不是继承自ActiveSupport::TestCase

回答

3

我很惊讶,它甚至运行。您在测试套装中声明CalendarEvent类。其中显然没有test方法。你为什么要把它命名为,与完全一样,作为测试类?请给它另一个名字:

#     ⇓⇓⇓⇓ HERE 
class CalendarEventTest < ActiveSupport::TestCase 
    include TestApiHelperPackage 

    test 'validate hello world' do 
    cal_event = CalendarEvent.new 
    assert_equal cal_event.test, 'Hello world' 
    end 
end 

而且一切都应该很好。可能你还想在test_heler.rb中使用require 'calender_event'

+0

哦,天啊 - 我觉得有点傻。谢谢。 Rails/Ruby中的命名约定总是让我感动。叹。我想说这只是我累了,但你的快速反应救了我!谢谢! – thornomad

+1

欢迎:) Rails会伤害大脑,我承认! – mudasobwa

相关问题