80 lines
994 B
Markdown
80 lines
994 B
Markdown
|
# Testing tips, golang edition
|
||
|
|
||
|
[Documentation](https://golang.org/pkg/testing/)
|
||
|
|
||
|
## Files
|
||
|
|
||
|
Test file should be place in the package directory and should be name using
|
||
|
the following convention :
|
||
|
|
||
|
- repo : github.com/go/pkg
|
||
|
- package : github.com/go/pkg/example
|
||
|
- package file : example/pkg.go
|
||
|
- test file : exemple/pkg_test.go
|
||
|
|
||
|
## Run
|
||
|
|
||
|
```shell
|
||
|
go test github.com/go/pkg/package
|
||
|
```
|
||
|
|
||
|
### fmt.Println is not working
|
||
|
|
||
|
Gniagniagnia, use
|
||
|
|
||
|
```golang
|
||
|
t.Log()
|
||
|
```
|
||
|
|
||
|
or
|
||
|
|
||
|
```golang
|
||
|
t.Logf()
|
||
|
```
|
||
|
also,
|
||
|
|
||
|
```shell
|
||
|
go test github.com/go/pkg/package -v
|
||
|
```
|
||
|
|
||
|
## How to fail
|
||
|
|
||
|
### Mark test as failed (next tests executed)
|
||
|
|
||
|
```golang
|
||
|
t.Fail()
|
||
|
```
|
||
|
### Mark test as failed AND exit
|
||
|
|
||
|
```golang
|
||
|
t.FailNow()
|
||
|
```
|
||
|
|
||
|
### Print and mark test as failed
|
||
|
|
||
|
```golang
|
||
|
t.Error()
|
||
|
```
|
||
|
|
||
|
or
|
||
|
|
||
|
```golang
|
||
|
t.Errorf()
|
||
|
```
|
||
|
|
||
|
### Print, mark test as failed AND exit
|
||
|
|
||
|
```golang
|
||
|
t.Fatal()
|
||
|
```
|
||
|
|
||
|
or
|
||
|
|
||
|
```golang
|
||
|
t.Fatalf()
|
||
|
```
|
||
|
|
||
|
## I don't want my tests to be messy (kudos @athoune)
|
||
|
|
||
|
[Assert](https://godoc.org/github.com/stretchr/testify/assert)
|