ruby-on-rails - rails rspec 的活跃工作
问题描述
我已经安装了一个 gem rspec-rails
。一切正常,除了ActiveJob
. 我试图通过以下方式实现ActiveJob
in RSpec:
include ActiveJob::TestHelper
这是 RSsec 作业控制器的代码:
describe "#perform_later" do
it "Send Invoice Reminder" do
ActiveJob::Base.queue_adapter = :test
InvoiceReminderJob.perform_later
expect(InvoiceReminderJob).to have_enqueued_job
end
end
spec_helper.rb
:
require 'rails_helper'
RSpec.describe InvoiceReminderJob, type: :job do
include ActiveJob::TestHelper
# pending "add some examples to (or delete) #{__FILE__}"
describe "#perform_later" do
it "Send Invoice Reminder" do
ActiveJob::Base.queue_adapter = :test
InvoiceReminderJob.perform("test")
expect(InvoiceReminderJob).to have_enqueued_job
end
end
end
invoice_reminder_job_spec.rb
:
require 'rails_helper'
RSpec.describe InvoiceReminderJob, type: :job do
# include ActiveJob::TestHelper
# pending "add some examples to (or delete) #{__FILE__}"
describe "#perform_later" do
it "Send Invoice Reminder" do
ActiveJob::Base.queue_adapter = :test
InvoiceReminderJob.perform_later
expect(InvoiceReminderJob).to have_enqueued_job
end
end
end
当我尝试使用命令运行 rspecrspec
时,出现以下错误:
未初始化的常量 ActiveJob (NameError)
这是我的Gemfile
:
这是我的项目中包含的 gemfile:
source 'https://rubygems.org'
ruby '2.1.2'
gem 'acts-as-taggable-on', '~> 3.4'
gem 'acts_as_tenant'
gem 'audited', '~> 4.0'
gem 'audited-activerecord'
gem 'aws-sdk', '~> 1.6'
gem 'axlsx'
gem 'best_in_place', '~> 3.0.1'
gem 'bootstrap-generators'
gem 'bootstrap-sass'
gem 'bullet', group: 'development'
gem 'cancancan', '~> 1.10'
gem 'clockwork'
gem 'coffee-rails', '~> 4.1.0'
gem 'daemons'
gem 'delayed_job_active_record'
gem 'devise'
gem 'eefgilm'
gem 'exception_notification'
gem 'figaro'
gem 'font-awesome-rails'
gem 'i18n-js', '>= 3.0.0.rc11'
gem 'jbuilder', '~> 2.0'
gem 'jquery-rails'
gem 'jquery-ui-rails'
gem 'mailman'
gem 'net-ssh'
gem 'paperclip', '~> 4.2'
gem 'pg'
gem 'protected_attributes'
gem 'puma'
gem 'rails', '4.1.5'
gem 'rails-console-tweaks'
gem 'rails-i18n'
gem 'rails_best_practices'
gem 'redcarpet'
gem 'rest-client'
gem 'roo'
gem 'roo-google'
gem 'roo-xls'
gem 'rubocop', require: false
gem 'sass-rails', '~> 5.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'seed_dump'
gem 'simple_form'
gem 'therubyracer', platforms: :ruby
gem 'traceroute'
gem 'twitter-bootstrap-rails'
gem 'uglifier', '>= 1.3.0'
gem 'whenever', :require => false
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'
gem 'zip'
group :development do
gem 'capistrano'
gem 'capistrano3-puma'
gem 'capistrano-bundler', require: false
gem 'capistrano-rails', require: false
gem 'capistrano-rvm'
gem 'rails-erd'
gem 'capistrano-rails-console', require: false
gem 'capistrano-maintenance', '~> 1.0', require: false
gem 'letter_opener'
gem 'rspec-rails'
gem 'faker'
end
group :production do
gem 'rails_12factor'
end
group :test do
gem 'shoulda-matchers'
gem 'database_cleaner'
gem 'simplecov'
end
group :development, :test do
gem 'byebug'
gem 'hirb'
gem 'mocha'
gem 'activejob'
gem 'factory_bot_rails'
end
这是输出bundle show activejob
:
/Users/221/.rvm/gems/ruby-2.1.2/gems/activejob-0
我试图搜索很多解决方案,但我无法解决这个问题。如果有人可以帮助我,我将不胜感激。
解决方案
您正在使用 rails 4.1.5,在 rails 4.2 中引入了 ActiveJob
推荐阅读
- c# - 根据服务类中的条件向客户端发送 401/403 错误
- angular - 可拖动事件到 FullCalendar
- nlp - 如何在 spaCy 中打印多个标签?
- flutter - 如何在颤动中将焦点转移到另一个文本表单字段
- c++ - TYPED_TEST 用于类模板
- kubernetes - 不同 Kubernetes 集群中的 Hazelcast 节点之间的数据是否强一致?
- javascript - 在范围输入中,当最小值和最大值相等时,幻灯片应该只是一个点?
- python - 在 GCP 中使用 Cloud Functions 抓取页面并将其加载到 BigQuery
- compilation - 尝试使用 ncurses 运行 C 代码时出现编译和链接错误
- jmeter - JMeter摘要报告中两个字段的含义 - 测试和总计