Compact testing utilities to shorten Go unit tests.
Go
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.travis.yml
LICENSE
README.md
decorate_test.go
utiltest.go
utiltest_test.go

README.md

ut (utiltest)

Collection of small functions to shorten Go test cases.

Requires Go 1.2 due to the use of testing.TB. If needed, replace with *testing.T at the cost of not being usable in benchmarks.

GoDoc Build Status Coverage Status

Examples

package foo

import (
    "github.com/maruel/ut"
    "log"
    "strconv"
    "testing"
)

func TestItoa(t *testing.T) {
    ut.AssertEqual(t, "42", strconv.Itoa(42))
}

func TestItoaDataListDriven(t *testing.T) {
    data := []struct {
        in       int
        expected string
    }{
        {9, "9"},
        {11, "11"},
    }
    for i, item := range data {
        ut.AssertEqualIndex(t, i, item.expected, strconv.Itoa(item.in))
    }
}

func TestWithLog(t *testing.T) {
    out := ut.NewWriter(t)
    defer out.Close()

    logger := log.New(out, "Foo:", 0)

    // These will be included in the test output only if the test case fails.
    logger.Printf("Q: What is the answer to life the universe and everything?")
    logger.Printf("A: %d", 42)
}