Document the new 'spec/fast_spec_helper.rb' file
Signed-off-by: Rémy Coutable <remy@rymai.me>
This commit is contained in:
parent
d2aee809ed
commit
fe919f95b1
1 changed files with 31 additions and 5 deletions
|
@ -90,6 +90,25 @@ Finished in 34.51 seconds (files took 0.76702 seconds to load)
|
|||
|
||||
Note: `live_debug` only works on javascript enabled specs.
|
||||
|
||||
### Fast unit tests
|
||||
|
||||
Some classes are well-isolated from Rails and you should be able to test them
|
||||
without the overhead added by the Rails environment and Bundler's `:default`
|
||||
group's gem loading. In these cases, you can `require 'fast_spec_helper'`
|
||||
instead of `require 'spec_helper'` in your test file, and your test should run
|
||||
really fast since:
|
||||
|
||||
- Gems loading is skipped
|
||||
- Rails app boot is skipped
|
||||
- Gitlab::Shell and Gitaly setup are skipped
|
||||
- Test repositories setup are skipped
|
||||
|
||||
Note that in some cases, you might have to add some `require_dependency 'foo'`
|
||||
in your file under test since Rails autoloading is not available in these cases.
|
||||
|
||||
This shouldn't be a problem since explicitely listing dependencies should be
|
||||
considered a good practice anyway.
|
||||
|
||||
### `let` variables
|
||||
|
||||
GitLab's RSpec suite has made extensive use of `let` variables to reduce
|
||||
|
@ -281,14 +300,13 @@ All fixtures should be be placed under `spec/fixtures/`.
|
|||
|
||||
RSpec config files are files that change the RSpec config (i.e.
|
||||
`RSpec.configure do |config|` blocks). They should be placed under
|
||||
`spec/support/config/`.
|
||||
`spec/support/`.
|
||||
|
||||
Each file should be related to a specific domain, e.g.
|
||||
`spec/support/config/capybara.rb`, `spec/support/config/carrierwave.rb`, etc.
|
||||
`spec/support/capybara.rb`, `spec/support/carrierwave.rb`, etc.
|
||||
|
||||
Helpers can be included in the `spec/support/config/rspec.rb` file. If a
|
||||
helpers module applies only to a certain kind of specs, it should add modifiers
|
||||
to the `config.include` call. For instance if
|
||||
If a helpers module applies only to a certain kind of specs, it should add
|
||||
modifiers to the `config.include` call. For instance if
|
||||
`spec/support/helpers/cycle_analytics_helpers.rb` applies to `:lib` and
|
||||
`type: :model` specs only, you would write the following:
|
||||
|
||||
|
@ -299,6 +317,14 @@ RSpec.configure do |config|
|
|||
end
|
||||
```
|
||||
|
||||
If a config file only consists of `config.include`, you can add these
|
||||
`config.include` directly in `spec/spec_helper.rb`.
|
||||
|
||||
For very generic helpers, consider including them in the `spec/support/rspec.rb`
|
||||
file which is used by the `spec/fast_spec_helper.rb` file. See
|
||||
[Fast unit tests](#fast-unit-tests) for more details about the
|
||||
`spec/fast_spec_helper.rb` file.
|
||||
|
||||
---
|
||||
|
||||
[Return to Testing documentation](index.md)
|
||||
|
|
Loading…
Reference in a new issue