/app/controller/news_configuration_controller.rb
class NewsConfigurationController < ApplicationController
# GET /news_configuration/refresh_from_www
def refresh_from_www
NewsRelease.delete_all
redirect_to news_configuration_path
end
end
/spec/controller/news_configuration_controller_spec.rb
RSpec.describe NewsConfigurationController, :type => :controller do
describe "GET 'refresh_from_www'" do
it "refreshes news releases" do
news_release_class = class_spy("NewsRelease")
get :refresh_from_www, { }, valid_session
expect(news_release_class).to have_received(:delete_all)
end
it "redirects to the news configuration index page" do
get :refresh_from_www, {}, valid_session
expect(response).to redirect_to(news_configuration_path)
end
it "deletes news releases - method called in the spec" do
release = FactoryGirl.create(:news_release)
puts "News release is: "
puts release.inspect
news_release_class = class_spy("NewsRelease")
puts "The class spy is: "
puts news_release_class.inspect
# get :refresh_from_www, { }, valid_session
items_deleted = NewsRelease.delete_all
puts "Deleted #{items_deleted} releases"
expect(news_release_class).to have_received(:delete_all)
end
end
end
$ rspec -f doc spec/controllers/news_configuration_controller_spec.rb:60Run options: include {:locations=>{"./spec/controllers/news_configuration_controller_spec.rb"=>[60]}}
NewsConfigurationController GET 'refresh_from_www' refreshes news releases (FAILED - 1)
redirects to the news configuration index page
News release is:#<NewsRelease id: 2011, title: "News Story", link: "http://www.caltech.edu", description: "Short blub", pubDate: "2014-08-24 23:17:28", guid: 1, created_at: "2014-09-07 23:17:28", updated_at: "2014-09-07 23:17:28">The class spy is:#<RSpec::Mocks::ClassVerifyingDouble:0x98c1c58 @name="NewsRelease">Deleted 1 releases
deletes news releases - method called in the spec (FAILED - 2)
Failures:
1) NewsConfigurationController GET 'refresh_from_www' refreshes news releases Failure/Error: expect(news_release_class).to have_received(:delete_all) (Double "NewsRelease").delete_all(any args) expected: 1 time with any arguments received: 0 times with any arguments # ./spec/controllers/news_configuration_controller_spec.rb:64:in `block (3 levels) in <top (required)>'
2) NewsConfigurationController GET 'refresh_from_www' deletes news releases - method called in the spec Failure/Error: expect(news_release_class).to have_received(:delete_all) (Double "NewsRelease").delete_all(any args) expected: 1 time with any arguments received: 0 times with any arguments # ./spec/controllers/news_configuration_controller_spec.rb:82:in `block (3 levels) in <top (required)>'
Finished in 0.21353 seconds (files took 2.94 seconds to load)3 examples, 2 failures
Failed examples:
rspec ./spec/controllers/news_configuration_controller_spec.rb:61 # NewsConfigurationController GET 'refresh_from_www' refreshes news releasesrspec ./spec/controllers/news_configuration_controller_spec.rb:72 # NewsConfigurationController GET 'refresh_from_www' deletes news releases - method called in the spec
Gemflie.lock ......
rspec-core (3.1.1) rspec-expectations (3.1.0)
rspec-mocks (3.1.0)
rspec-rails (3.1.0)--
You received this message because you are subscribed to the Google Groups "rspec" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rspec+un...@googlegroups.com.
To post to this group, send email to rs...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/121297c5-1422-4420-add1-4546073a2b10%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/553AE5FEAE7B4102B6CC2DAC6E17FF1B%40jonrowe.co.uk.