# README
or
shorthand for testing in go
required
go 1.18 (for generics)
how to use
Fatal()
function is a shorthand for the factory function returning with error value (e.g. func(...) (T, error)
)
Use it like this.
package main
import (
"fmt"
"testing"
"github.com/podhmo/or"
)
type Foo struct{}
func getFoo() (*Foo, error) { return &Foo{}, nil }
type Bar struct{ Foo *Foo }
func getBar(foo *Foo) (*Bar, error) { return nil, fmt.Errorf("hmm") }
type Boo struct{ Foo *Foo }
func getBoo(foo *Foo) (*Boo, func(), error) { return nil, nil, fmt.Errorf("hmm") }
func TestFatal(t *testing.T) {
foo := or.Fatal(getFoo())(t)
bar := or.Fatal(getBar(foo))(t)
_ = bar // doSomething
}
func TestFatalWithCleanup(t *testing.T) {
foo := or.Fatal(getFoo())(t)
boo := or.FatalWithCleanup(getBoo(foo))(t)
_ = boo // doSomething
}
The result is here.
$ go test
--- FAIL: TestFatal (0.00s)
example_test.go:24: accessing fail (*main.Bar): hmm
--- FAIL: TestFatalWithCleanup (0.00s)
example_test.go:31: accessing fail (*main.Boo): hmm
FAIL
exit status 1
FAIL github.com/podhmo/or/testdata 0.003s
why not or.Fatal(t, getFoo()
?
There are two reasons.
- go's multiple values specification
- go's generics specification
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
No description provided by the author
No description provided by the author