docbrown/docs/tests/unit-functional-tests.md
Jacob Herrington 7d0aeeefe5 Improve the clarity of the docs and fix Prettier config (#4899)
* Improve format and clarity of the docs [ci skip]

While this change produces a lot of git noise by enacting what seems
like an arbitrary linewrap on most of the files in the documentation it
will result in better version control and tracking of the changes in the
documentation.

For example, as it currently stands, if one was to make a
PR to move a comma in a sentence because each paragraph in most of the
files is on a single line, that small change would look in the git
history like the author had modified the entire paragraph. In reality,
this author just moved a comma.

This change also includes a significant number of modifications to the
more article-esque docs. Many of these docs were written in a sort of
stream-of-conciousness and aren't as easy to read as they could be.
Hopefully this is the first of several readability changes. If we could
get these docs to a more accessible reading level, we would probably see
an increase in contributions. :)

* Delegate markdown wrapping to Prettier

* Add linewrapping explanation in the docs [ci skip]
2019-11-26 08:40:53 -05:00

1 KiB

title
Unit and Functional Tests

Unit and Functional Tests

A unit test is about testing a single function/method in isolation with all of its possible outputs.

A functional test is about testing a single functionality, which can span multiple methods and a controller.

Other common terms in Rails are "model tests," "controller tests," and others.

You can find model tests in spec/models, controller tests in spec/controllers and additional functional tests in various directories within the spec directory.

You can run all models tests, for example, with:

bundle exec rspec spec/models

To run an individual file you can use, for example:

bundle exec rspec spec/models/user_spec.rb

To run a specific test case you can use, for example:

bundle exec rspec spec/models/user_spec.rb:10

where 10 is the line number of the test case that you want to execute.

You can read the official guide Testing Rails Applications to learn more.