0
내 사양 실패하고 나에게 __mock_proxy에 대한 오류 메시지()주는 많은 : 나는 레일 3.1.4을 실행하는거야예기치 않은 호출 : __mock_proxy() mock_model 포함 RSpec에 사양을 실행할 때
$ rspec spec/helpers/liaisons_helper_spec.rb
WARNING: Cucumber-rails required outside of env.rb. The rest of loading is being defered until env.rb is called.
To avoid this warning, move 'gem cucumber-rails' under only group :test in your Gemfile
FF
Failures:
1) LiaisonsHelper hrefs_of_email_addresses_for_liaison to enumerate email_addresses as RESTful links
Failure/Error: email_address = mock_model(EmailAddress)
Mocha::ExpectationError:
unexpected invocation: #<Mock:EmailAddress_1001>.__mock_proxy()
unsatisfied expectations:
- expected exactly once, not yet invoked: #<Mock:EmailAddress_1001>.id(any_parameters)
- expected exactly once, not yet invoked: #<Mock:EmailAddress_1001>.blank?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:EmailAddress_1001>.valid?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:EmailAddress_1001>.marked_for_destruction?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:EmailAddress_1001>.destroyed?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:EmailAddress_1001>.persisted?(any_parameters)
# ./spec/helpers/liaisons_helper_spec.rb:6:in `block (3 levels) in <top (required)>'
2) LiaisonsHelper hrefs_of_phone_numbers_for_liaison to enumerate phone_numbers as RESTful links
Failure/Error: phone_number = mock_model(PhoneNumber)
Mocha::ExpectationError:
unexpected invocation: #<Mock:PhoneNumber_1002>.__mock_proxy()
unsatisfied expectations:
- expected exactly once, not yet invoked: #<Mock:PhoneNumber_1002>.id(any_parameters)
- expected exactly once, not yet invoked: #<Mock:PhoneNumber_1002>.blank?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:PhoneNumber_1002>.valid?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:PhoneNumber_1002>.marked_for_destruction?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:PhoneNumber_1002>.destroyed?(any_parameters)
- expected exactly once, not yet invoked: #<Mock:PhoneNumber_1002>.persisted?(any_parameters)
# ./spec/helpers/liaisons_helper_spec.rb:19:in `block (3 levels) in <top (required)>'
및 루비 1.9.2, 그리고 이러한 보석 사용하고 있습니다 : 나는 사람들이 같은 오류가 this one on github을 포함하여 여러 보고서를 발견했습니다
$ bundle list | grep mocha
* mocha (0.10.5)
* rspec-rails-mocha (0.3.1)
$ bundle list | grep rspec
* rspec (2.8.0)
* rspec-apotomo (0.9.6)
* rspec-cells (0.1.2)
* rspec-core (2.8.0)
* rspec-expectations (2.8.0)
* rspec-mocks (2.8.0)
* rspec-rails (2.8.1)
* rspec-rails-mocha (0.3.1)
,하지만 그들은 모두 하나가 오래된 것 같다 또는 포함되지 않습니다 해결책.
편집 :이 사양 내 동료의 컴퓨터에서 작동하지만 내에서 작동하지 않습니다. 차이점은 RSpec::Rails::Mocha
과 RSpec::Rails::Mocks
이 - RSpec::Rails::Mocha
에 포함 된 순서와 관련이있는 것으로 보입니다. (사양 작동) 내 동료의 컴퓨터에서
describe 'test' do
it 'test' do
m = self.method(:mock_model)
p m
p m.source_location
p self.class.included_modules.map(&:to_s).grep(/Moc/)
end
end
, 그것은이 출력 제작 :
#<Method: RSpec::Core::ExampleGroup::Nested_1::Nested_1(RSpec::Rails::Mocha)#mock_model>
["/Users/username/.rvm/gems/[email protected]/gems/rspec-rails-mocha-0.3.1/lib/rspec/rails/mocha.rb", 59]
["RSpec::Rails::Mocha", "RSpec::Rails::Mocks", "RSpec::Core::MockFrameworkAdapter", "Mocha::API", "Mocha::ParameterMatchers", "Mocha::ObjectMethods"]
그리고 내 컴퓨터를 (
나는 누구의 출력을 보여줍니다 테스트 사양했다 이을 첨가하여 고정#<Method: RSpec::Core::ExampleGroup::Nested_1::Nested_1(RSpec::Rails::Mocks)#mock_model>
["/Users/username/.rvm/gems/[email protected]/gems/rspec-rails-2.9.0/lib/rspec/rails/mocks.rb", 67]
["RSpec::Rails::Mocks", "RSpec::Rails::Mocha", "RSpec::Core::MockFrameworkAdapter", "Mocha::API", "Mocha::ParameterMatchers", "Mocha::ObjectMethods"]