Rspec-rails: metode yang tidak ditentukan `tepatnya' untuk #<:activejob::matchers::enqueuea i="4"/>

Dibuat pada 1 Apr 2020  ·  3Komentar  ·  Sumber: rspec/rspec-rails

Versi Ruby, Rails, dan RSpec apa yang Anda gunakan?

bundle exec ruby --version
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin19]
bundle exec rails --version
Rails 6.0.2.2
bundle exec rspec --version
RSpec 3.9
  - rspec-core 3.9.1
  - rspec-expectations 3.9.1
  - rspec-mocks 3.9.1
  - rspec-rails 4.0.0
  - rspec-support 3.9.2

Perilaku yang diamati

     Failure/Error: expect(::RedactedJob).to have_been_enqueued.exactly(2).times

     NoMethodError:
       undefined method `exactly' for #<RSpec::ActiveJob::Matchers::EnqueueA:0x00007feb2aa89d10>
     # ./spec/redacted/enqueue_jobs_spec.rb:37:in `block (3 levels) in <module:Redacted>'

Perilaku yang diharapkan

Dokumentasi 4.0 memiliki contoh berikut, jadi saya berharap exactly didefinisikan.

      UploadBackupsJob.perform_later('backup')
      expect(UploadBackupsJob).to have_been_enqueued.exactly(:once)

Solusi

expect(::RedactedJob).to have_been_enqueued.times(2)

Bisakah Anda memberikan contoh aplikasi?

Senang, jika bertekad untuk dibutuhkan.

Komentar yang paling membantu

Bisakah Anda mengatur breakpoint dan memeriksa apa sumber kelas yang dikembalikan oleh have_been_enqueued ?

undefined method `exactly' for #<RSpec::ActiveJob::Matchers::EnqueueA:0x00007feb2aa89d10>

RSpec::ActiveJob::Matchers::EnqueueA tidak terlihat terlalu mirip dengan RSpec::Rails::Matchers::ActiveJob::HaveBeenEnqueued .

Cukup yakin Anda menggunakan rspec-activejob . Saatnya untuk mulai menggunakan matcher rspec-rails sebagai gantinya.

Semua 3 komentar

Bisakah Anda mengatur breakpoint dan memeriksa apa sumber kelas yang dikembalikan oleh have_been_enqueued ?

undefined method `exactly' for #<RSpec::ActiveJob::Matchers::EnqueueA:0x00007feb2aa89d10>

RSpec::ActiveJob::Matchers::EnqueueA tidak terlihat terlalu mirip dengan RSpec::Rails::Matchers::ActiveJob::HaveBeenEnqueued .

Cukup yakin Anda menggunakan rspec-activejob . Saatnya untuk mulai menggunakan matcher rspec-rails sebagai gantinya.

Cukup yakin Anda menggunakan rspec-activejob . Saatnya untuk mulai menggunakan matcher rspec-rails sebagai gantinya.

Terima kasih Phil, setelah menghapus rspec-activejob , sekarang saya dapat menggunakan exactly .

Senang mengetahui @jaredbeck , senang membantu

Apakah halaman ini membantu?
0 / 5 - 0 peringkat