ruby-on-rails - 如何在 Rails 中测试非 ActiveRecord 模型?

标签 ruby-on-rails ruby testing 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

最佳答案

我很惊讶它竟然能运行。您在测试套件中声明类 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/

相关文章:

IOS 测试 : KIF vs Instruments/Automation

ruby-on-rails - RSpec: Controller 规范的多个断言

ruby-on-rails - Savon + Rails 2 如何修改XML的请求结构

ruby - attr_accessor 与 attr_reader & 实例变量

ruby-on-rails - 从 Gem 获取 Ruby 项目根路径

Ruby:如何在 sprintf 输出中包含 % 符号?

testing - TeamCity 测试可以异步运行吗

ruby-on-rails - 使用 UIImagePickerController 将图像上传到 Dragonfly on Rails

ruby-on-rails - 我们应该在 Rails Factories 中使用 Faker 吗?

ruby-on-rails - 具有相同名称的类和模块 - 如何选择一个或另一个?