Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
李少辉-开发者
gitlab-foss
提交
cedcc145
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,体验更适合开发者的 AI 搜索 >>
提交
cedcc145
编写于
4月 09, 2016
作者:
R
Robert Speicher
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Minor Testing guide copyedits
[ci skip]
上级
955d027d
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
10 addition
and
8 deletion
+10
-8
doc/development/testing.md
doc/development/testing.md
+10
-8
未找到文件。
doc/development/testing.md
浏览文件 @
cedcc145
...
...
@@ -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 tha
t
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
[
T
raits
]:
http://www.rubydoc.info/gems/factory_girl/file/GETTING_STARTED.md#Traits
[
t
raits
]:
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!
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录