Skip to content

moritz-tiesler/boil

Repository files navigation

boil

Generate tests for a go package

Installation

go get --tool github.com/moritz-tiesler/boil

Example

$ cat src/frog.go
package frog

type Frog struct{}

func (f *Frog) quack(loud bool) string {
	if loud {
		return "QUACK!"
	}
	return "quack..."
}
$ cd src/
$ go tool boil
Created file frog_test.go
Created 1 tests
$ cat frog_test.go
package frog

import (
	"reflect"
	"testing"
)

func TestQuack(t *testing.T) {
	t.Run("TestQuack_0", func(t *testing.T) {

		// delete this after your implementation
		t.Fatalf("test not implemented")

		var receiver Frog
		var loud bool

		result0 := receiver.quack(loud)

		var expect0 string
		if !reflect.DeepEqual(result0, expect0) {
			t.Errorf("Expected %v, got %v", expect0, result0)
		}

	})
}

Table Tests

You can generate your tests in table format with the --table flag:

$ go tool boil --table
package frog

import (
	"reflect"
	"testing"
)

func TestQuack(t *testing.T) {
	tests := []struct {
		testName string
		loud bool
	}{
		// put your test cases here
	}

	// delete this after your implementation
	t.Fatalf("test not implemented")

	for _, tt := range tests {
		t.Run(tt.testName, func(t *testing.T) {
			var receiver Frog
			result0 := receiver.quack(tt.loud)

			var expect0 string
			if !reflect.DeepEqual(result0, expect0) {
				t.Errorf("Expected %v, got %v", expect0, result0)
			}

		})
	}
}

About

Generate tests for a go package

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages