Commit 64d87d22 authored by Marcia Ramos's avatar Marcia Ramos

Merge branch 'ab-update-factory-doc-docs' into 'master'

Update factory doc with common change information

See merge request gitlab-org/gitlab!40308
parents b9c42a28 5989a569
...@@ -57,14 +57,24 @@ bundle exec guard ...@@ -57,14 +57,24 @@ bundle exec guard
When using spring and guard together, use `SPRING=1 bundle exec guard` instead to make use of spring. When using spring and guard together, use `SPRING=1 bundle exec guard` instead to make use of spring.
Use [Factory Doctor](https://test-prof.evilmartians.io/#/profilers/factory_doctor) to find cases on un-necessary database manipulation, which can cause slow tests. Use [Factory Doctor](https://test-prof.evilmartians.io/#/profilers/factory_doctor) to find cases where database persistence is not needed in a given test.
```shell ```shell
# run test for path # run test for path
FDOC=1 bin/rspec spec/[path]/[to]/[spec].rb FDOC=1 bin/rspec spec/[path]/[to]/[spec].rb
``` ```
[Factory Profiler](https://test-prof.evilmartians.io/#/profilers/factory_prof) can help to identify unnecessary factory creation. A common change is to use `build` instead of `create`:
```ruby
# Old
let(:project) { create(:project) }
# New
let(:project) { build(:project) }
```
[Factory Profiler](https://test-prof.evilmartians.io/#/profilers/factory_prof) can help to identify repetitive database persistance via factories.
```shell ```shell
# run test for path # run test for path
...@@ -74,14 +84,14 @@ FPROF=1 bin/rspec spec/[path]/[to]/[spec].rb ...@@ -74,14 +84,14 @@ FPROF=1 bin/rspec spec/[path]/[to]/[spec].rb
FPROF=flamegraph bin/rspec spec/[path]/[to]/[spec].rb FPROF=flamegraph bin/rspec spec/[path]/[to]/[spec].rb
``` ```
A common change is to use [`let_it_be`](#common-test-setup). A common change is to use [`let_it_be`](#common-test-setup):
```ruby ```ruby
# Old # Old
let(:project) { create(:project) } let(:project) { create(:project) }
# New # New
let_it_be(:project) { create(:project) } let_it_be(:project) { create(:project) }
``` ```
### General guidelines ### General guidelines
......
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