aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source
diff options
context:
space:
mode:
authorZachary Scott <e@zzak.io>2014-12-29 17:28:15 -0800
committerZachary Scott <e@zzak.io>2014-12-29 17:29:47 -0800
commit241ccaef88e494657ff4121ef31d73160237fd6c (patch)
tree38b59be96adc619cc2caf0a0b950b2b458da7936 /guides/source
parent152ac966aebd62cad03a7693a51e3c558dac333b (diff)
downloadrails-241ccaef88e494657ff4121ef31d73160237fd6c.tar.gz
rails-241ccaef88e494657ff4121ef31d73160237fd6c.tar.bz2
rails-241ccaef88e494657ff4121ef31d73160237fd6c.zip
Move longer form example from integration guide to api reference, below an
existing example. [ci skip] My reasoning is that this is probably too much information for the complete Rails testing guide, as we're trying to cover testing all aspects of the framework.
Diffstat (limited to 'guides/source')
-rw-r--r--guides/source/testing.md74
1 files changed, 0 insertions, 74 deletions
diff --git a/guides/source/testing.md b/guides/source/testing.md
index 506f84b9e9..144a92df3e 100644
--- a/guides/source/testing.md
+++ b/guides/source/testing.md
@@ -795,80 +795,6 @@ In addition to the standard testing helpers, there are some additional helpers a
| `delete_via_redirect(path, [parameters], [headers])` | Allows you to make an HTTP DELETE request and follow any subsequent redirects.|
| `open_session` | Opens a new session instance.|
-### Integration Testing Examples
-
-A simple integration test that exercises multiple controllers:
-
-```ruby
-require 'test_helper'
-
-class UserFlowsTest < ActionDispatch::IntegrationTest
- test "login and browse site" do
- # login via https
- https!
- get "/login"
- assert_response :success
-
- post_via_redirect "/login", username: users(:david).username, password: users(:david).password
- assert_equal '/welcome', path
- assert_equal 'Welcome david!', flash[:notice]
-
- https!(false)
- get "/articles/all"
- assert_response :success
- assert assigns(:articles)
- end
-end
-```
-
-As you can see the integration test involves multiple controllers and exercises the entire stack from database to dispatcher. In addition you can have multiple session instances open simultaneously in a test and extend those instances with assertion methods to create a very powerful testing DSL (domain-specific language) just for your application.
-
-Here's an example of multiple sessions and custom DSL in an integration test
-
-```ruby
-require 'test_helper'
-
-class UserFlowsTest < ActionDispatch::IntegrationTest
- test "login and browse site" do
- # User david logs in
- david = login(:david)
- # User guest logs in
- guest = login(:guest)
-
- # Both are now available in different sessions
- assert_equal 'Welcome david!', david.flash[:notice]
- assert_equal 'Welcome guest!', guest.flash[:notice]
-
- # User david can browse site
- david.browses_site
- # User guest can browse site as well
- guest.browses_site
-
- # Continue with other assertions
- end
-
- private
-
- module CustomDsl
- def browses_site
- get "/products/all"
- assert_response :success
- assert assigns(:products)
- end
- end
-
- def login(user)
- open_session do |sess|
- sess.extend(CustomDsl)
- u = users(user)
- sess.https!
- sess.post "/login", username: u.username, password: u.password
- assert_equal '/welcome', sess.path
- sess.https!(false)
- end
- end
-end
-```
Rake Tasks for Running your Tests
---------------------------------