Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
fe919f95
G
gitlab-foss
项目概览
李少辉-开发者
/
gitlab-foss
通知
15
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
gitlab-foss
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
fe919f95
编写于
3月 29, 2018
作者:
R
Rémy Coutable
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Document the new 'spec/fast_spec_helper.rb' file
Signed-off-by:
N
Rémy Coutable
<
remy@rymai.me
>
上级
d2aee809
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
31 addition
and
5 deletion
+31
-5
doc/development/testing_guide/best_practices.md
doc/development/testing_guide/best_practices.md
+31
-5
未找到文件。
doc/development/testing_guide/best_practices.md
浏览文件 @
fe919f95
...
...
@@ -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/c
onfig/capybara.rb`
,
`spec/support/config
/carrierwave.rb`
, etc.
`spec/support/c
apybara.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
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录