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
> [email protected]
> http://rubyforge.org/mailman/listinfo/rspec-users
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users