[rspec-users] response.should have_text leads to undefined method `has_text?'

David Chelimsky dchelimsky at gmail.com
Sat Oct 2 16:04:04 EDT 2010


On Oct 2, 2010, at 2:27 PM, Kai Schlamp wrote:

> A big hello.
> 
> I would like to test a controller that directly renders some JSON output (by using "render :json => @entity_names"). For that task I tried in my spec file "response.should have_text('["enim", "enita"]')". Unfortunately I always get that error: 
> Failure/Error: response.should have_text('["enim", "enita"]') 
> undefined method `has_text?' for " ":String

have_text is not supported in rspec-2.

For JSON, I like to deserialize the output and match against the decoded JSON:

json = ActiveSupport::JSON::decode(response.body)
json.should eq(%w[enim enita])

Then you could wrap that in a matcher:

RSpec::Matchers.define :be_json do |expected_json|
  match do |response|
    json = ActiveSupport::JSON::decode(response.body)
    json.should == expected_json
  end
end

response.should be_json(%w[enim enita])

HTH,
David


> 
> (Also a "response.body.should have_text('["enim", "enita"]')as someone suggested on Stackoverflow did not solve the problem.)
> 
> Do I miss some gem that provides that method? Here my Gemfile:
> 
> source 'http://rubygems.org'
> 
> gem 'rails', '>= 3.0.0'
> gem 'mysql2'
> gem 'mongrel'
> gem 'devise'
> gem 'will_paginate', :git => 'git://github.com/mislav/will_paginate.git', :branch =>    'rails3'
> gem 'thinking-sphinx', :git     => 'git://github.com/freelancing-god/thinking-sphinx.git', :branch  => 'rails3', :require => 'thinking_sphinx'
> 
> group :test, :development do
>  gem 'rspec-rails', '>= 2.0.0.beta.19'
>  gem 'steak', :git => 'git://github.com/cavalle/steak.git'
>  gem 'webrat'
>  gem 'capybara'
>  gem 'capybara-envjs'
>  gem 'shoulda'
>  gem 'launchy'
>  gem 'autotest'
>  gem 'autotest-rails'
>  gem 'test_notifier'
>  gem 'rails3-generators'
>  gem 'factory_girl_rails'
>  gem 'populator'
>  gem 'faker'
>  gem 'random_data'
>  gem 'database_cleaner', :git => 'git://github.com/bmabey/database_cleaner.git'
>  gem 'delorean'
> end
> 
> Best regards,
> Kai
> -- 
> GMX DSL Doppel-Flat ab 19,99 €/mtl.! Jetzt auch mit 
> gratis Notebook-Flat! http://portal.gmx.net/de/go/dsl
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users



More information about the rspec-users mailing list