Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
739f50c3
Commit
739f50c3
authored
Jul 18, 2019
by
Victor Zagorodny
Committed by
Evan Read
Jul 18, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Go guide: be more explicit on testing frameworks + diffing test results
parent
34f5eb1b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
35 additions
and
2 deletions
+35
-2
doc/development/go_guide/index.md
doc/development/go_guide/index.md
+35
-2
No files found.
doc/development/go_guide/index.md
View file @
739f50c3
...
...
@@ -129,17 +129,50 @@ deploy a new pod, migrating the data automatically.
## Testing
### Testing frameworks
We should not use any specific library or framework for testing, as the
[
standard library
](
https://golang.org/pkg/
)
provides already everything to get
started. For example, some external dependencies might be worth considering in
case we decide to use a specific library or framework:
started. If there is a need for more sophisticated testing tools, the following
external dependencies might be worth considering in case we decide to use a specific
library or framework:
-
[
Testify
](
https://github.com/stretchr/testify
)
-
[
httpexpect
](
https://github.com/gavv/httpexpect
)
### Subtests
Use
[
subtests
](
https://blog.golang.org/subtests
)
whenever possible to improve
code readability and test output.
### Better output in tests
When comparing expected and actual values in tests, use
[
testify/require.Equal
](
https://godoc.org/github.com/stretchr/testify/require#Equal
)
,
[
testify/require.EqualError
](
https://godoc.org/github.com/stretchr/testify/require#EqualError
)
,
[
testify/require.EqualValues
](
https://godoc.org/github.com/stretchr/testify/require#EqualValues
)
,
and others to improve readability when comparing structs, errors,
large portions of text, or JSON documents:
```
go
type
TestData
struct
{
// ...
}
func
FuncUnderTest
()
TestData
{
// ...
}
func
Test
(
t
*
testing
.
T
)
{
t
.
Run
(
"FuncUnderTest"
,
func
(
t
*
testing
.
T
)
{
want
:=
TestData
{}
got
:=
FuncUnderTest
()
require
.
Equal
(
t
,
want
,
got
)
// note that expected value comes first, then comes the actual one ("diff" semantics)
})
}
```
### Benchmarks
Programs handling a lot of IO or complex operations should always include
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment