# 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)