如何在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继承吗?

最佳答案

我很惊讶它竟然跑了您在测试套装中声明类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

一切都会好起来的可能您也希望require 'calender_event'在您的test_heler.rb中。

10-06 00:44