Π ΡΠ±ΠΈΠ½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ: 2.6.6
ΠΠ΅ΡΡΠΈΡ ΡΠ΅Π»ΡΡΠΎΠ²: 6.1.0-rc2
ΠΠ΅ΡΡΠΈΡ RSpec: 4.1.0.pre (Π²Π΅ΡΠΊΠ° 6-1-dev)
ΠΠ°ΠΏΡΡΠΊ rspec Π²ΡΠ·ΡΠ²Π°Π΅Ρ ΠΎΡΠΈΠ±ΠΊΡ:
NoMethodError:
undefined method `assert_nothing_raised' for #<RSpec::ExampleGroups::Test "fails" (./spec/test_spec.rb:5)>
ΠΠ΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΎΡΠΈΠ±ΠΊΠ° Β«Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΠΌΠ΅ΡΠΎΠ΄Β»; ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ Π΄ΠΎ Rails 6.0.3.4.
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ Π΅Π³ΠΎ Π² Gemfile:
%w[rspec rspec-core rspec-expectations rspec-mocks rspec-support].each do |lib|
gem lib, git: "https://github.com/rspec/#{lib}.git", branch: "main"
end
git "https://github.com/rspec/rspec-rails", branch: "rails-6-1-dev" do
gem "rspec-rails"
end
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ:
bundle install
rails generate rspec:install
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΠ΅ΡΡ:
# rspec/test_spec.rb
# frozen_string_literal: true
require "rails_helper"
RSpec.describe "test" do
it "fails" do
assert_nothing_raised()
end
end
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΡΠ΅ΡΡΡ:
bundle exec rspec spec/test_spec.rb
ΠΡΠ±Π°Ρ ΠΏΡΠΈΡΠΈΠ½Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ https://relishapp.com/rspec/rspec-expectations/v/3-9/docs/built-in-matchers/raise-error-matcher?
expect { raise "oops" }.to raise_error
Π£ ΠΌΠ΅Π½Ρ ΡΠ° ΠΆΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ActiveJob::TestHelpers
ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π½ΠΈΠΆΠ΅:
RSpec.describe do
include ActiveJob::TestHelper
it 'works' do
perform_enqueued_jobs do
SomeService.doSomething
end
end
end
NoMethodError:
undefined method `assert_nothing_raised' for #<RSpec::ExampleGroups::xxxx:0x0000559e7b2a3018>
Did you mean? assert_raises
# .../gems/rspec-expectations-3.10.0/lib/rspec/matchers.rb:965:in `method_missing'
# .../gems/rspec-core-3.10.0/lib/rspec/core/example_group.rb:764:in `method_missing'
# .../gems/activejob-6.1.0.rc2/lib/active_job/test_helper.rb:591:in `perform_enqueued_jobs'
ΠΊΠ°ΠΊΠΎΠΉ Π»ΡΡΡΠΈΠΉ ΡΠΏΠΎΡΠΎΠ± Π²ΠΎΡΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ?
Π ΠΠΠΠΠ’ΠΠ ΠΠΠΠ’Π¬
ΠΠ±Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΡΡ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ:
RSpec.configure do |config|
def assert_nothing_raised(&block)
expect(&block).to_not raise_error
end
end
ΠΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΠ½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½, Π±ΡΠ» ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½, Π΅ΡΡΡ ΠΊΡΡΠ° ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΡ Π²Π½ΠΎΡΠΈΠΌ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ ΠΏΠΎΠΌΠΎΡΠ½ΠΈΠΊΠΎΠ².
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ActiveSupport::Testing::Assertions .
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ:
RSpec.configure do |config|
config.include ActiveSupport::Testing::Assertions
end
@benoittgt ΠΠ°ΠΊ Π²Ρ Π΄ΡΠΌΠ°Π΅ΡΠ΅, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΡΠ°Π²ΠΈΡΡ ΡΡΠΎ Π΄Π»Ρ 6.1?
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ActiveSupport::Testing::Assertions .
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΠ±ΠΎΠΉΡΠΈ ΡΡΠΎ: