>From my point of view (as a professional Rails dev), this makes much better >and more complete sense. Devs are *always* confused about this, and have lots >of trouble around it.
One often ends up wondering "Do I use visit/page or do I use request(get/post)/response?" Julian On 31/03/2013, at 8:16 PM, Gjaldon <gjaldo...@gmail.com> wrote: > Here's a post by Jose Valim on the reasoning behind the change: > http://blog.plataformatec.com.br/2012/06/improving-the-integration-between-capybara-and-rspec/ > > As a quick summary, Capybara is an acceptance test framework and as such, > tests should be written from a browser or user's perspective. With the > rspec-rails gem, tests found in spec/requests directory have access to > methods that expose lower-level details like requests and responses(methods > like get, put, post.) So if Capybara tests are also found in that same > spec/requests directory, you are able to use both the Capybara DSL and the > free methods that are meant for integration tests which causes a conflict and > leads to some developers using a mix of both. This leads to ugly test suites. > > The solution they came up with is to create a separate directory meant for > use with Capybara DSL, which is spec/features and another directory > (spec/api) meant for use with the Rails provided integration test tools. > > Michael Hartl will be releasing a newer version of his tutorial sometime in > the future which will provide more up-to-date material. You might also want > to look at RSpec's 'expect' syntax for its assertions. They plan on > deprecating the 'should' syntax possibly as early as RSpec 3.0. > > On Sunday, March 31, 2013 1:57:30 PM UTC+8, Peter wrote: > Hello Everyone, > > I am new to Ruby on Rails. I just finished Michael Hartl's Ruby on Rails > Tutorial and I just started on Agile Web Development with Rails, Fourth > Edition by Sam Ruby. In trying to build confidence and proficiency, I started > building small apps and decided, as I had learned from Michael Hartl, to use > capybara and rspec. But when I tried it nothing was working. It turns out, > this was the reason: > > If you are using Rails, put your Capybara specs in spec/features. > > And in order to use the tests I had created in spec/requests, I have to do > this: > > If you are not using Rails, tag all the example groups in which you want to > use Capybara with :type => :feature. > > Can anyone explain the reasoning behind this? I'm sure there is a good reason > for this that my newbie self does not comprehend yet. Thank you in advance. > > p > > -- > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to rubyonrails-talk+unsubscr...@googlegroups.com. > To post to this group, send email to rubyonrails-talk@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msg/rubyonrails-talk/-/kktojwdJDlUJ. > For more options, visit https://groups.google.com/groups/opt_out. > > -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.