Variants dieser Frage wurden mehrmals gestellt, aber die meisten von ihnen beschäftigen sich mit Mokka und ich verwende es nicht. Ich bin ein Neuling auf Schienen, also mag das trivial erscheinen, aber ich bin nicht in der Lage, in meiner Spezifikationsdatei (die für einen Controller Wettbewerbe genannt) zu spielen.NoMethodError: undefined Methode `Mock 'für # <RSpec :: ExampleGroups :: CompetitionsController :: Erstellen>
require 'rails_helper'
require 'spec_helper'
describe CompetitionsController do
before :each do
@fake_c = mock(Competition, :competition_id => 1, :competition_name => 'one', :competition_des => 'any')
end
describe 'create' do
it 'should create new competition' do
#CompetitionsController.stub(:create).and_return(mock('Competition'))
#post :create, {:id=>"1"}
end
end
end
Ich bin bei der Mock-Methode fest, nur so habe ich nicht viel mehr geschrieben. Meine spec_helper Datei hat folgenden Inhalt
ENV["RAILS_ENV"] ||= 'test'
require 'simplecov'
SimpleCov.start
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
RSpec.configure do |config|
# rspec-expectations config goes here. You can use an alternate
# assertion/expectation library such as wrong or the stdlib/minitest
# assertions if you prefer.
config.expect_with :rspec do |expectations|
# This option will default to `true` in RSpec 4. It makes the `description`
# and `failure_message` of custom matchers include text for helper methods
# defined using `chain`, e.g.:
# be_bigger_than(2).and_smaller_than(4).description
# # => "be bigger than 2 and smaller than 4"
# ...rather than:
# # => "be bigger than 2"
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
end
# rspec-mocks config goes here. You can use an alternate test double
# library (such as bogus or mocha) by changing the `mock_with` option here.
config.mock_with :rspec do |mocks|
# Prevents you from mocking or stubbing a method that does not exist on
# a real object. This is generally recommended, and will default to
# `true` in RSpec 4.
mocks.verify_partial_doubles = true
end
end
I Rubin Version 2.2.1 verwenden und Schienen 4.2.1
ja es tut. Ist die Verwendung von Mock veraltet? – Pukki
Offenbar, ja, 'stub' und' mock' sind veraltet. Sehen Sie diese PR: https://github.com/rspec/rspec-mocks/pull/233/files –
Oh ja, ich habe vergessen. Danke – Pukki