如何在 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
一切都会顺利的。可能您还想在 test_heler.rb
中要求“calender_event”
。
关于ruby-on-rails - 如何在 Rails 中测试非 ActiveRecord 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45181022/