Ed Howland
2010-Feb-17 18:47 UTC
[rspec-users] have_tag missing assert_select outside of controller/view tests
Hi,
I''m trying to write an example that uses response.should
have_tag(''div'')
outside of a Rails view test. I read somewhere that as long as you
have an instance variable named @response and it respondes to .body
with some HTML, it should work, but I get this failure:
undefined method `assert_select'' for
#<ActiveSupport::TestCase::Subclass_1:0x103
Also, has anyone cooked this up to work with Sinatra, or are you
restricted to using Rails? Seems that some Nokogiri wiz could work up
a substitute for ActiveSupport.
Thanks,
Ed
Ed Howland
http://greenprogrammer.wordpress.com
http://twitter.com/ed_howland
On Tue, Feb 16, 2010 at 6:42 PM, patrick99e99 <patrick99e99 at gmail.com>
wrote:> I am new to BDD, so am not quite sure how I am supposed to write a
> test like this.. ?I get:
> "ActiveRecord::RecordInvalid in ''User should fail when
passwords do
> not match''
> Validation failed: Password doesn''t match confirmation"
>
> If anyone can guide me in the right direction, I''d appreciate it..
>
> -patrick
>
> require ''spec_helper''
>
> describe User do
>
> ?before(:each) do
> ? ? @valid_attributes = {
> ? ? ?:login => ''test_name'',
> ? ? ?:password => ''password'',
> ? ? ?:password_confirmation => ''password''
> ? ?}
>
> ? ? ?@invalid_attributes = @valid_attributes.merge(:password =>
> ''not_the_same_password'')
> ?end
>
> ?it "should create a valid user" do
> ? ?User.create!(@valid_attributes).should be_true
> ?end
>
> ?it "should fail when passwords do not match" do
> ? ?User.create!(@invalid_attributes).should be_false
> ?end
>
> end
>
>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
David Chelimsky
2010-Feb-17 20:38 UTC
[rspec-users] have_tag missing assert_select outside of controller/view tests
On Wed, Feb 17, 2010 at 12:47 PM, Ed Howland <ed.howland at gmail.com> wrote:> Hi, > > I''m trying to write an example that uses response.should have_tag(''div'') > outside of a Rails view test. I read somewhere that as long as you > have an instance variable named @response and it respondes to .body > with some HTML, it should work, but I get this failure:have_tag is on its way to its death. It won''t exist in rspec-rails-2, though I hesitate to deprecate it in rspec-rails-1.x since many folks won''t be able to upgrade directly anyhow. I''d recommend using webrat''s have_selector instead.> > undefined method `assert_select'' for #<ActiveSupport::TestCase::Subclass_1:0x103 > > Also, has anyone cooked this up to work with Sinatra, or are you > restricted to using Rails? Seems that some Nokogiri wiz could work up > a substitute for ActiveSupport. > > Thanks, > Ed > > Ed Howland > http://greenprogrammer.wordpress.com > http://twitter.com/ed_howland > > > > On Tue, Feb 16, 2010 at 6:42 PM, patrick99e99 <patrick99e99 at gmail.com> wrote: >> I am new to BDD, so am not quite sure how I am supposed to write a >> test like this.. ?I get: >> "ActiveRecord::RecordInvalid in ''User should fail when passwords do >> not match'' >> Validation failed: Password doesn''t match confirmation" >> >> If anyone can guide me in the right direction, I''d appreciate it.. >> >> -patrick >> >> require ''spec_helper'' >> >> describe User do >> >> ?before(:each) do >> ? ? @valid_attributes = { >> ? ? ?:login => ''test_name'', >> ? ? ?:password => ''password'', >> ? ? ?:password_confirmation => ''password'' >> ? ?} >> >> ? ? ?@invalid_attributes = @valid_attributes.merge(:password => >> ''not_the_same_password'') >> ?end >> >> ?it "should create a valid user" do >> ? ?User.create!(@valid_attributes).should be_true >> ?end >> >> ?it "should fail when passwords do not match" do >> ? ?User.create!(@invalid_attributes).should be_false >> ?end >> >> end >> >> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> > _______________________________________________ > rspec-users mailing list > rspec-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
Ed Howland
2010-Feb-18 01:56 UTC
[rspec-users] have_tag missing assert_select outside of controller/view tests
Thanks, David.
I hope that is less/non dependent on Rails/ActiveSupport. It seems to
depend on Nokogiri, and hopefully uses some duck-typeable response
object. I guess they use response_body.
I''ve concocted a strange brew of RSpec, Johnson and envjs. It can
already
execute normal Javascript methods, jQuery, and AJAX calls. The only
missing piece is the assert_select-like framework:
it "should make an ajax call and format some content" do
click_async "a#edit"
response.should have_selector(''div'') # this last part, I
need
end
I don''t know if anyone else is working on this front, but it is
getting us closer to having a pure Ruby/non-browser spec framework
Cheers,
Ed
Ed Howland
http://greenprogrammer.wordpress.com
http://twitter.com/ed_howland
On Wed, Feb 17, 2010 at 3:38 PM, David Chelimsky <dchelimsky at gmail.com>
wrote:> On Wed, Feb 17, 2010 at 12:47 PM, Ed Howland <ed.howland at
gmail.com> wrote:
>> Hi,
>>
>> I''m trying to write an example that uses response.should
have_tag(''div'')
>> outside of a Rails view test. I read somewhere that as long as you
>> have an instance variable named @response and it respondes to .body
>> with some HTML, it should work, but I get this failure:
>
> have_tag is on its way to its death. It won''t exist in
rspec-rails-2,
> though I hesitate to deprecate it in rspec-rails-1.x since many folks
> won''t be able to upgrade directly anyhow.
>
> I''d recommend using webrat''s have_selector instead.
>
>>
>> undefined method `assert_select'' for
#<ActiveSupport::TestCase::Subclass_1:0x103
>>
>> Also, has anyone cooked this up to work with Sinatra, or are you
>> restricted to using Rails? Seems that some Nokogiri wiz could work up
>> a substitute for ActiveSupport.
>>
>> Thanks,
>> Ed
>>
>> Ed Howland
>> http://greenprogrammer.wordpress.com
>> http://twitter.com/ed_howland
>>
>>
>>
>> On Tue, Feb 16, 2010 at 6:42 PM, patrick99e99 <patrick99e99 at
gmail.com> wrote:
>>> I am new to BDD, so am not quite sure how I am supposed to write a
>>> test like this.. ?I get:
>>> "ActiveRecord::RecordInvalid in ''User should fail
when passwords do
>>> not match''
>>> Validation failed: Password doesn''t match
confirmation"
>>>
>>> If anyone can guide me in the right direction, I''d
appreciate it..
>>>
>>> -patrick
>>>
>>> require ''spec_helper''
>>>
>>> describe User do
>>>
>>> ?before(:each) do
>>> ? ? @valid_attributes = {
>>> ? ? ?:login => ''test_name'',
>>> ? ? ?:password => ''password'',
>>> ? ? ?:password_confirmation => ''password''
>>> ? ?}
>>>
>>> ? ? ?@invalid_attributes = @valid_attributes.merge(:password =>
>>> ''not_the_same_password'')
>>> ?end
>>>
>>> ?it "should create a valid user" do
>>> ? ?User.create!(@valid_attributes).should be_true
>>> ?end
>>>
>>> ?it "should fail when passwords do not match" do
>>> ? ?User.create!(@invalid_attributes).should be_false
>>> ?end
>>>
>>> end
>>>
>>>
>>> _______________________________________________
>>> rspec-users mailing list
>>> rspec-users at rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users at rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
> _______________________________________________
> rspec-users mailing list
> rspec-users at rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>
Ed Howland
2010-Feb-18 17:19 UTC
[rspec-users] have_tag missing assert_select outside of controller/view tests
Thanks for the advice, Webrat''s have_select or does work with any object that responds to :body. so I''ve now got it working with Steven Parkes''s Env.js port to Johnson w/TraceMonkey. RSpec on Javascript w/o a browser. Sweet. Cheers, Ed Ed Howland http://greenprogrammer.wordpress.com http://twitter.com/ed_howland On Wed, Feb 17, 2010 at 8:56 PM, Ed Howland <ed.howland at gmail.com> wrote:> Thanks, David. > > I hope that is less/non dependent on Rails/ActiveSupport. It seems to > depend on Nokogiri, and hopefully uses some duck-typeable response > object. I guess they use response_body. > > I''ve concocted a strange brew of RSpec, Johnson and envjs. It can already > execute normal Javascript methods, jQuery, and AJAX calls. The only > missing piece is the assert_select-like framework: > > it "should make an ajax call and format some content" do > ? ?click_async "a#edit" > ? ?response.should have_selector(''div'') # this last part, I need > end > > I don''t know if anyone else is working on this front, but it is > getting us closer to having a pure Ruby/non-browser spec framework > > Cheers, > Ed > > Ed Howland > http://greenprogrammer.wordpress.com > http://twitter.com/ed_howland > > > > On Wed, Feb 17, 2010 at 3:38 PM, David Chelimsky <dchelimsky at gmail.com> wrote: >> On Wed, Feb 17, 2010 at 12:47 PM, Ed Howland <ed.howland at gmail.com> wrote: >>> Hi, >>> >>> I''m trying to write an example that uses response.should have_tag(''div'') >>> outside of a Rails view test. I read somewhere that as long as you >>> have an instance variable named @response and it respondes to .body >>> with some HTML, it should work, but I get this failure: >> >> have_tag is on its way to its death. It won''t exist in rspec-rails-2, >> though I hesitate to deprecate it in rspec-rails-1.x since many folks >> won''t be able to upgrade directly anyhow. >> >> I''d recommend using webrat''s have_selector instead. >> >>> >>> undefined method `assert_select'' for #<ActiveSupport::TestCase::Subclass_1:0x103 >>> >>> Also, has anyone cooked this up to work with Sinatra, or are you >>> restricted to using Rails? Seems that some Nokogiri wiz could work up >>> a substitute for ActiveSupport. >>> >>> Thanks, >>> Ed >>> >>> Ed Howland >>> http://greenprogrammer.wordpress.com >>> http://twitter.com/ed_howland >>> >>> >>> >>> On Tue, Feb 16, 2010 at 6:42 PM, patrick99e99 <patrick99e99 at gmail.com> wrote: >>>> I am new to BDD, so am not quite sure how I am supposed to write a >>>> test like this.. ?I get: >>>> "ActiveRecord::RecordInvalid in ''User should fail when passwords do >>>> not match'' >>>> Validation failed: Password doesn''t match confirmation" >>>> >>>> If anyone can guide me in the right direction, I''d appreciate it.. >>>> >>>> -patrick >>>> >>>> require ''spec_helper'' >>>> >>>> describe User do >>>> >>>> ?before(:each) do >>>> ? ? @valid_attributes = { >>>> ? ? ?:login => ''test_name'', >>>> ? ? ?:password => ''password'', >>>> ? ? ?:password_confirmation => ''password'' >>>> ? ?} >>>> >>>> ? ? ?@invalid_attributes = @valid_attributes.merge(:password => >>>> ''not_the_same_password'') >>>> ?end >>>> >>>> ?it "should create a valid user" do >>>> ? ?User.create!(@valid_attributes).should be_true >>>> ?end >>>> >>>> ?it "should fail when passwords do not match" do >>>> ? ?User.create!(@invalid_attributes).should be_false >>>> ?end >>>> >>>> end >>>> >>>> >>>> _______________________________________________ >>>> rspec-users mailing list >>>> rspec-users at rubyforge.org >>>> http://rubyforge.org/mailman/listinfo/rspec-users >>>> >>> _______________________________________________ >>> rspec-users mailing list >>> rspec-users at rubyforge.org >>> http://rubyforge.org/mailman/listinfo/rspec-users >>> >> _______________________________________________ >> rspec-users mailing list >> rspec-users at rubyforge.org >> http://rubyforge.org/mailman/listinfo/rspec-users >> >