aboutsummaryrefslogtreecommitdiffstats
path: root/guides
diff options
context:
space:
mode:
Diffstat (limited to 'guides')
-rw-r--r--guides/CHANGELOG.md2
-rw-r--r--guides/source/action_mailer_basics.md2
-rw-r--r--guides/source/command_line.md22
-rw-r--r--guides/source/engines.md18
-rw-r--r--guides/source/generators.md12
-rw-r--r--guides/source/getting_started.md24
-rw-r--r--guides/source/testing.md30
7 files changed, 58 insertions, 52 deletions
diff --git a/guides/CHANGELOG.md b/guides/CHANGELOG.md
index d65e507a74..a1a480e911 100644
--- a/guides/CHANGELOG.md
+++ b/guides/CHANGELOG.md
@@ -1,3 +1,5 @@
## Rails 4.0.0 (unreleased) ##
+* Guides updated to reflect new test locations. *Mike Moore*
+
* Guides have a responsive design. *Joe Fiorini*
diff --git a/guides/source/action_mailer_basics.md b/guides/source/action_mailer_basics.md
index 5e731d0a18..b992defa6d 100644
--- a/guides/source/action_mailer_basics.md
+++ b/guides/source/action_mailer_basics.md
@@ -27,7 +27,7 @@ create app/mailers/user_mailer.rb
invoke erb
create app/views/user_mailer
invoke test_unit
-create test/functional/user_mailer_test.rb
+create test/mailers/user_mailer_test.rb
```
So we got the mailer, the views, and the tests.
diff --git a/guides/source/command_line.md b/guides/source/command_line.md
index 22645babfe..0338ef5ad0 100644
--- a/guides/source/command_line.md
+++ b/guides/source/command_line.md
@@ -134,10 +134,10 @@ Example:
`rails generate controller CreditCard open debit credit close`
Credit card controller with URLs like /credit_card/debit.
- Controller: app/controllers/credit_card_controller.rb
- Functional Test: test/functional/credit_card_controller_test.rb
- Views: app/views/credit_card/debit.html.erb [...]
- Helper: app/helpers/credit_card_helper.rb
+ Controller: app/controllers/credit_card_controller.rb
+ Test: test/controllers/credit_card_controller_test.rb
+ Views: app/views/credit_card/debit.html.erb [...]
+ Helper: app/helpers/credit_card_helper.rb
```
The controller generator is expecting parameters in the form of `generate controller ControllerName action1 action2`. Let's make a `Greetings` controller with an action of **hello**, which will say something nice to us.
@@ -150,11 +150,11 @@ $ rails generate controller Greetings hello
create app/views/greetings
create app/views/greetings/hello.html.erb
invoke test_unit
- create test/functional/greetings_controller_test.rb
+ create test/controllers/greetings_controller_test.rb
invoke helper
create app/helpers/greetings_helper.rb
invoke test_unit
- create test/unit/helpers/greetings_helper_test.rb
+ create test/helpers/greetings_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/greetings.js.coffee
@@ -223,7 +223,7 @@ $ rails generate scaffold HighScore game:string score:integer
create db/migrate/20120528060026_create_high_scores.rb
create app/models/high_score.rb
invoke test_unit
- create test/unit/high_score_test.rb
+ create test/models/high_score_test.rb
create test/fixtures/high_scores.yml
route resources :high_scores
invoke scaffold_controller
@@ -236,11 +236,11 @@ $ rails generate scaffold HighScore game:string score:integer
create app/views/high_scores/new.html.erb
create app/views/high_scores/_form.html.erb
invoke test_unit
- create test/functional/high_scores_controller_test.rb
+ create test/controllers/high_scores_controller_test.rb
invoke helper
create app/helpers/high_scores_helper.rb
invoke test_unit
- create test/unit/helpers/high_scores_helper_test.rb
+ create test/helpers/high_scores_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/high_scores.js.coffee
@@ -327,7 +327,7 @@ $ rails generate model Oops
create db/migrate/20120528062523_create_oops.rb
create app/models/oops.rb
invoke test_unit
- create test/unit/oops_test.rb
+ create test/models/oops_test.rb
create test/fixtures/oops.yml
```
```bash
@@ -336,7 +336,7 @@ $ rails destroy model Oops
remove db/migrate/20120528062523_create_oops.rb
remove app/models/oops.rb
invoke test_unit
- remove test/unit/oops_test.rb
+ remove test/models/oops_test.rb
remove test/fixtures/oops.yml
```
diff --git a/guides/source/engines.md b/guides/source/engines.md
index 6d2d8ca409..7aef0f150f 100644
--- a/guides/source/engines.md
+++ b/guides/source/engines.md
@@ -130,7 +130,7 @@ end
This line mounts the engine at the path `/blorgh`, which will make it accessible through the application only at that path.
-Also in the test directory is the `test/integration` directory, where integration tests for the engine should be placed. Other directories can be created in the `test` directory also. For example, you may wish to create a `test/unit` directory for your unit tests.
+Also in the test directory is the `test/integration` directory, where integration tests for the engine should be placed. Other directories can be created in the `test` directory also. For example, you may wish to create a `test/models` directory for your models tests.
Providing engine functionality
------------------------------
@@ -152,7 +152,7 @@ invoke active_record
create db/migrate/[timestamp]_create_blorgh_posts.rb
create app/models/blorgh/post.rb
invoke test_unit
-create test/unit/blorgh/post_test.rb
+create test/models/blorgh/post_test.rb
create test/fixtures/blorgh/posts.yml
route resources :posts
invoke scaffold_controller
@@ -165,11 +165,11 @@ create app/views/blorgh/posts/show.html.erb
create app/views/blorgh/posts/new.html.erb
create app/views/blorgh/posts/_form.html.erb
invoke test_unit
-create test/functional/blorgh/posts_controller_test.rb
+create test/controllers/blorgh/posts_controller_test.rb
invoke helper
create app/helpers/blorgh/posts_helper.rb
invoke test_unit
-create test/unit/helpers/blorgh/posts_helper_test.rb
+create test/helpers/blorgh/posts_helper_test.rb
invoke assets
invoke js
create app/assets/javascripts/blorgh/posts.js
@@ -181,7 +181,7 @@ create app/assets/stylesheets/scaffold.css
The first thing that the scaffold generator does is invoke the `active_record` generator, which generates a migration and a model for the resource. Note here, however, that the migration is called `create_blorgh_posts` rather than the usual `create_posts`. This is due to the `isolate_namespace` method called in the `Blorgh::Engine` class's definition. The model here is also namespaced, being placed at `app/models/blorgh/post.rb` rather than `app/models/post.rb` due to the `isolate_namespace` call within the `Engine` class.
-Next, the `test_unit` generator is invoked for this model, generating a unit test at `test/unit/blorgh/post_test.rb` (rather than `test/unit/post_test.rb`) and a fixture at `test/fixtures/blorgh/posts.yml` (rather than `test/fixtures/posts.yml`).
+Next, the `test_unit` generator is invoked for this model, generating a model test at `test/models/blorgh/post_test.rb` (rather than `test/models/post_test.rb`) and a fixture at `test/fixtures/blorgh/posts.yml` (rather than `test/fixtures/posts.yml`).
After that, a line for the resource is inserted into the `config/routes.rb` file for the engine. This line is simply `resources :posts`, turning the `config/routes.rb` file for the engine into this:
@@ -193,7 +193,7 @@ end
Note here that the routes are drawn upon the `Blorgh::Engine` object rather than the `YourApp::Application` class. This is so that the engine routes are confined to the engine itself and can be mounted at a specific point as shown in the [test directory](#test-directory) section. This is also what causes the engine's routes to be isolated from those routes that are within the application. This is discussed further in the [Routes](#routes) section of this guide.
-Next, the `scaffold_controller` generator is invoked, generating a controller called `Blorgh::PostsController` (at `app/controllers/blorgh/posts_controller.rb`) and its related views at `app/views/blorgh/posts`. This generator also generates a functional test for the controller (`test/functional/blorgh/posts_controller_test.rb`) and a helper (`app/helpers/blorgh/posts_controller.rb`).
+Next, the `scaffold_controller` generator is invoked, generating a controller called `Blorgh::PostsController` (at `app/controllers/blorgh/posts_controller.rb`) and its related views at `app/views/blorgh/posts`. This generator also generates a test for the controller (`test/controllers/blorgh/posts_controller_test.rb`) and a helper (`app/helpers/blorgh/posts_controller.rb`).
Everything this generator has created is neatly namespaced. The controller's class is defined within the `Blorgh` module:
@@ -261,7 +261,7 @@ invoke active_record
create db/migrate/[timestamp]_create_blorgh_comments.rb
create app/models/blorgh/comment.rb
invoke test_unit
-create test/unit/blorgh/comment_test.rb
+create test/models/blorgh/comment_test.rb
create test/fixtures/blorgh/comments.yml
```
@@ -334,11 +334,11 @@ create app/controllers/blorgh/comments_controller.rb
invoke erb
exist app/views/blorgh/comments
invoke test_unit
-create test/functional/blorgh/comments_controller_test.rb
+create test/controllers/blorgh/comments_controller_test.rb
invoke helper
create app/helpers/blorgh/comments_helper.rb
invoke test_unit
-create test/unit/helpers/blorgh/comments_helper_test.rb
+create test/helpers/blorgh/comments_helper_test.rb
invoke assets
invoke js
create app/assets/javascripts/blorgh/comments.js
diff --git a/guides/source/generators.md b/guides/source/generators.md
index 0bcfa1dc68..d56bbe853c 100644
--- a/guides/source/generators.md
+++ b/guides/source/generators.md
@@ -176,7 +176,7 @@ $ rails generate scaffold User name:string
create db/migrate/20091120125558_create_users.rb
create app/models/user.rb
invoke test_unit
- create test/unit/user_test.rb
+ create test/models/user_test.rb
create test/fixtures/users.yml
route resources :users
invoke scaffold_controller
@@ -189,11 +189,11 @@ $ rails generate scaffold User name:string
create app/views/users/new.html.erb
create app/views/users/_form.html.erb
invoke test_unit
- create test/functional/users_controller_test.rb
+ create test/controllers/users_controller_test.rb
invoke helper
create app/helpers/users_helper.rb
invoke test_unit
- create test/unit/helpers/users_helper_test.rb
+ create test/helpers/users_helper_test.rb
invoke stylesheets
create app/assets/stylesheets/scaffold.css
```
@@ -350,7 +350,7 @@ $ rails generate scaffold Comment body:text
create db/migrate/20091120151323_create_comments.rb
create app/models/comment.rb
invoke shoulda
- create test/unit/comment_test.rb
+ create test/models/comment_test.rb
create test/fixtures/comments.yml
route resources :comments
invoke scaffold_controller
@@ -364,11 +364,11 @@ $ rails generate scaffold Comment body:text
create app/views/comments/_form.html.erb
create app/views/layouts/comments.html.erb
invoke shoulda
- create test/functional/comments_controller_test.rb
+ create test/controllers/comments_controller_test.rb
invoke my_helper
create app/helpers/comments_helper.rb
invoke shoulda
- create test/unit/helpers/comments_helper_test.rb
+ create test/helpers/comments_helper_test.rb
```
Fallbacks allow your generators to have a single responsibility, increasing code reuse and reducing the amount of duplication.
diff --git a/guides/source/getting_started.md b/guides/source/getting_started.md
index 28adad3855..3fbe64c4a7 100644
--- a/guides/source/getting_started.md
+++ b/guides/source/getting_started.md
@@ -185,11 +185,11 @@ invoke erb
create app/views/welcome
create app/views/welcome/index.html.erb
invoke test_unit
-create test/functional/welcome_controller_test.rb
+create test/controllers/welcome_controller_test.rb
invoke helper
create app/helpers/welcome_helper.rb
invoke test_unit
-create test/unit/helpers/welcome_helper_test.rb
+create test/helpers/welcome_helper_test.rb
invoke assets
invoke coffee
create app/assets/javascripts/welcome.js.coffee
@@ -1239,7 +1239,7 @@ This command will generate four files:
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| db/migrate/20100207235629_create_comments.rb | Migration to create the comments table in your database (your name will include a different timestamp) |
| app/models/comment.rb | The Comment model |
-| test/unit/comment_test.rb | Unit testing harness for the comments model |
+| test/models/comment_test.rb | Testing harness for the comments model |
| test/fixtures/comments.yml | Sample comments for use in testing |
First, take a look at `comment.rb`:
@@ -1360,15 +1360,15 @@ $ rails generate controller Comments
This creates six files and one empty directory:
-| File/Directory | Purpose |
-| ------------------------------------------- | ---------------------------------------- |
-| app/controllers/comments_controller.rb | The Comments controller |
-| app/views/comments/ | Views of the controller are stored here |
-| test/functional/comments_controller_test.rb | The functional tests for the controller |
-| app/helpers/comments_helper.rb | A view helper file |
-| test/unit/helpers/comments_helper_test.rb | The unit tests for the helper |
-| app/assets/javascripts/comment.js.coffee | CoffeeScript for the controller |
-| app/assets/stylesheets/comment.css.scss | Cascading style sheet for the controller |
+| File/Directory | Purpose |
+| -------------------------------------------- | ---------------------------------------- |
+| app/controllers/comments_controller.rb | The Comments controller |
+| app/views/comments/ | Views of the controller are stored here |
+| test/controllers/comments_controller_test.rb | The test for the controller |
+| app/helpers/comments_helper.rb | A view helper file |
+| test/helpers/comments_helper_test.rb | The test for the helper |
+| app/assets/javascripts/comment.js.coffee | CoffeeScript for the controller |
+| app/assets/stylesheets/comment.css.scss | Cascading style sheet for the controller |
Like with any blog, our readers will create their comments directly after
reading the post, and once they have added their comment, will be sent back to
diff --git a/guides/source/testing.md b/guides/source/testing.md
index 2680525928..b45aba8d55 100644
--- a/guides/source/testing.md
+++ b/guides/source/testing.md
@@ -121,18 +121,18 @@ For this guide we will be using Rails _scaffolding_. It will create the model, a
NOTE: For more information on Rails <i>scaffolding</i>, refer to [Getting Started with Rails](getting_started.html)
-When you use `rails generate scaffold`, for a resource among other things it creates a test stub in the `test/unit` folder:
+When you use `rails generate scaffold`, for a resource among other things it creates a test stub in the `test/models` folder:
```bash
$ rails generate scaffold post title:string body:text
...
create app/models/post.rb
-create test/unit/post_test.rb
+create test/models/post_test.rb
create test/fixtures/posts.yml
...
```
-The default test stub in `test/unit/post_test.rb` looks like this:
+The default test stub in `test/models/post_test.rb` looks like this:
```ruby
require 'test_helper'
@@ -225,9 +225,9 @@ TIP: You can see all these rake tasks and their descriptions by running `rake --
Running a test is as simple as invoking the file containing the test cases through Ruby:
```bash
-$ ruby -Itest test/unit/post_test.rb
+$ ruby -Itest test/models/post_test.rb
-Loaded suite unit/post_test
+Loaded suite models/post_test
Started
.
Finished in 0.023513 seconds.
@@ -240,9 +240,9 @@ This will run all the test methods from the test case. Note that `test_helper.rb
You can also run a particular test method from the test case by using the `-n` switch with the `test method name`.
```bash
-$ ruby -Itest test/unit/post_test.rb -n test_the_truth
+$ ruby -Itest test/models/post_test.rb -n test_the_truth
-Loaded suite unit/post_test
+Loaded suite models/post_test
Started
.
Finished in 0.023513 seconds.
@@ -271,7 +271,7 @@ F
Finished in 0.102072 seconds.
1) Failure:
-test_should_not_save_post_without_title(PostTest) [/test/unit/post_test.rb:6]:
+test_should_not_save_post_without_title(PostTest) [/test/models/post_test.rb:6]:
<false> is not true.
1 tests, 1 assertions, 1 failures, 0 errors
@@ -290,7 +290,7 @@ Running this test shows the friendlier assertion message:
```bash
1) Failure:
-test_should_not_save_post_without_title(PostTest) [/test/unit/post_test.rb:6]:
+test_should_not_save_post_without_title(PostTest) [/test/models/post_test.rb:6]:
Saved the post without a title.
<false> is not true.
```
@@ -341,7 +341,7 @@ Finished in 0.082603 seconds.
1) Error:
test_should_report_error(PostTest):
NameError: undefined local variable or method `some_undefined_variable' for #<PostTest:0x249d354>
- /test/unit/post_test.rb:6:in `test_should_report_error'
+ /test/models/post_test.rb:6:in `test_should_report_error'
1 tests, 0 assertions, 0 failures, 1 errors
```
@@ -420,7 +420,7 @@ You should test for things such as:
* was the correct object stored in the response template?
* was the appropriate message displayed to the user in the view?
-Now that we have used Rails scaffold generator for our `Post` resource, it has already created the controller code and functional tests. You can take look at the file `posts_controller_test.rb` in the `test/functional` directory.
+Now that we have used Rails scaffold generator for our `Post` resource, it has already created the controller code and tests. You can take look at the file `posts_controller_test.rb` in the `test/controllers` directory.
Let me take you through one such test, `test_should_get_index` from the file `posts_controller_test.rb`.
@@ -762,12 +762,16 @@ You don't need to set up and run your tests by hand on a test-by-test basis. Rai
| ------------------------------- | ----------- |
| `rake test` | Runs all unit, functional and integration tests. You can also simply run `rake` as the _test_ target is the default.|
| `rake test:benchmark` | Benchmark the performance tests|
-| `rake test:functionals` | Runs all the functional tests from `test/functional`|
+| `rake test:controllers` | Runs all the controller tests from `test/controllers`|
+| `rake test:functionals` | Runs all the functional tests from `test/controllers`, `test/mailers`, and `test/functional`|
+| `rake test:helpers` | Runs all the helper tests from `test/helpers`|
| `rake test:integration` | Runs all the integration tests from `test/integration`|
+| `rake test:mailers` | Runs all the mailer tests from `test/mailers`|
+| `rake test:models` | Runs all the model tests from `test/models`|
| `rake test:profile` | Profile the performance tests|
| `rake test:recent` | Tests recent changes|
| `rake test:uncommitted` | Runs all the tests which are uncommitted. Supports Subversion and Git|
-| `rake test:units` | Runs all the unit tests from `test/unit`|
+| `rake test:units` | Runs all the unit tests from `test/models`, `test/helpers`, and `test/unit`|
Brief Note About `Test::Unit`