summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Speicher <rspeicher@gmail.com>2016-04-09 01:19:21 -0400
committerRobert Speicher <rspeicher@gmail.com>2016-04-09 01:19:21 -0400
commitcedcc1453cbbd4a8ba43cf932b8765d891f19e0c (patch)
treea6b072847ceed2aa4a0fcda11923e90cd5e9266f
parent955d027d17485924ea7c04228edbade3bc835660 (diff)
downloadgitlab-ce-cedcc1453cbbd4a8ba43cf932b8765d891f19e0c.tar.gz
Minor Testing guide copyedits
[ci skip]
-rw-r--r--doc/development/testing.md18
1 files changed, 10 insertions, 8 deletions
diff --git a/doc/development/testing.md b/doc/development/testing.md
index 23417845f16..672e3fb4649 100644
--- a/doc/development/testing.md
+++ b/doc/development/testing.md
@@ -16,16 +16,18 @@ GitLab uses [factory_girl] as a test fixture replacement.
- Factory definitions live in `spec/factories/`, named using the pluralization
of their corresponding model (`User` factories are defined in `users.rb`).
- There should be only one top-level factory definition per file.
-- Make use of [Traits] to clean up definitions and usages.
+- FactoryGirl methods are mixed in to all RSpec groups. This means you can (and
+ should) call `create(...)` instead of `FactoryGirl.create(...)`.
+- Make use of [traits] to clean up definitions and usages.
- When defining a factory, don't define attributes that are not required for the
resulting record to pass validation.
-- When instantiating from a factory, don't supply extraneous attributes that
- aren't required by the test.
+- When instantiating from a factory, don't supply attributes that aren't
+ required by the test.
- Factories don't have to be limited to `ActiveRecord` objects.
[See example](https://gitlab.com/gitlab-org/gitlab-ce/commit/0b8cefd3b2385a21cfed779bd659978c0402766d).
[factory_girl]: https://github.com/thoughtbot/factory_girl
-[Traits]: http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md#Traits
+[traits]: http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md#Traits
## JavaScript
@@ -40,9 +42,9 @@ the command line via `bundle exec teaspoon`, or via a web browser at
`spec/javascripts/fixtures`. They should contain the bare minimum amount of
markup necessary for the test.
- > **Warning:** Keep in mind that a Rails view may change and
- invalidate your test, but everything will still pass because your fixture
- doesn't reflect the latest view.
+ > **Warning:** Keep in mind that a Rails view may change and
+ invalidate your test, but everything will still pass because your fixture
+ doesn't reflect the latest view.
- Keep in mind that in a CI environment, these tests are run in a headless
browser and you will not have access to certain APIs, such as
@@ -102,7 +104,7 @@ Here are some things to keep in mind regarding test performance:
- Don't `create` an object when `build`, `build_stubbed`, `attributes_for`,
`spy`, or `double` will do. Database persistence is slow!
- Use `create(:empty_project)` instead of `create(:project)` when you don't need
- the underlying repository. Filesystem operations are slow!
+ the underlying Git repository. Filesystem operations are slow!
- Don't mark a feature as requiring JavaScript (through `@javascript` in
Spinach or `js: true` in RSpec) unless it's _actually_ required for the test
to be valid. Headless browser testing is slow!