2
어떤 이유로 RSpec 스터 빙은 내 테스트에서 사용할 수 없으며 그 이유를 알 수 없습니다. 여기 RSpec 스텁 메서드를이 개체에 추가 할 수없는 이유는 무엇입니까?
는 예를 들어 테스트입니다 :RSpec.describe User, type: :model do
it "Should allow me to stub a model" do
u = User.new
u.stub(:test)
u.test
end
end
여기에 테스트 결과입니다 :
Failures:
1) Subscription Should allow me to stub a model
Failure/Error: u.stub(:test)
NoMethodError:
undefined method `stub' for #<User:0x007fa5cfea20c8>
# ./spec/models/user_spec.rb:6:in `block (2 levels)
in <top (required)>'
FWIW 다음과 같이 내 사양 도우미 파일의 모의 설정 섹션은 다음과 같습니다
config.mock_with :rspec do |mocks|
# Enable only the newer, non-monkey-patching expect syntax.
# For more details, see:
# - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
mocks.syntax = :expect
# Prevents you from mocking or stubbing a method that does not exist on
# a real object. This is generally recommended.
mocks.verify_partial_doubles = true
end
어쩌면 당신은 [새 구문] (https://github.com/rspec/rspec-mocks)'allow (u) .to receive (: test)' – zishe
@zishe를 사용해야합니다. 예, 좋은 제안이지만 분명히 뭔가 잘못 설정되어있어 수정하는 것이 좋습니다 –
'mocks.syntax'가'should'이어야합니다. 답변을 추가했습니다. – zishe