Commit 7186f0de authored by Grzegorz Bizon's avatar Grzegorz Bizon

Improve testing best practices guidelines

It mentions that explicitly defining dependencies in sources is
preferred over defining such dependencies only in spec files.
parent d134c0fb
...@@ -141,20 +141,14 @@ dependencies. `fast_spec_helper` also loads all ActiveSupport extensions, ...@@ -141,20 +141,14 @@ dependencies. `fast_spec_helper` also loads all ActiveSupport extensions,
including core extensions that are commonly used in the Rails environment. including core extensions that are commonly used in the Rails environment.
Note that in some cases, you might still have to load some dependencies using Note that in some cases, you might still have to load some dependencies using
`require_dependency` in your `*_spec.rb` file, like when a code is using gems. `require_dependency` when a code is using gems or a dependency is not located
in `lib/`.
For example, if you want to test your code that is calling the For example, if you want to test your code that is calling the
`Gitlab::UntrustedRegexp` class, which under the hood uses `re2` library, you `Gitlab::UntrustedRegexp` class, which under the hood uses `re2` library, you
should be able to define a test using follow code snippet. should either add `require_dependency 're2'` to files in your library that
need `re2` gem, to make this requirement explicit, or you can add it to the
```ruby spec itself, but the former is preferred.
require 'fast_spec_helper'
require_dependency 're2'
describe Gitlab::MyModule::MyClass do
# ...
end
```
It takes around one second to load tests that are using `fast_spec_helper` It takes around one second to load tests that are using `fast_spec_helper`
instead of 30+ seconds in case of a regular `spec_helper`. instead of 30+ seconds in case of a regular `spec_helper`.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment