Clone this repo:

Branches

  1. a9c9f15 Escape ANSI codes. by Marc-Antoine Ruel · 1 year, 4 months ago master
  2. e403083 Only use unified diff if the content is multiple lines. by Marc-Antoine Ruel · 1 year, 5 months ago
  3. f5445ca Use unified diff by default, makes thing easier to handle by Marc-Antoine Ruel · 1 year, 5 months ago
  4. b0ab472 Update pre-commit-go to pcg. by Marc-Antoine Ruel · 1 year, 10 months ago
  5. 1141791 Limit output to 2048 per formatter. by Marc-Antoine Ruel · 1 year, 11 months ago

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