Need help with testing?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

benbjohnson
495 Stars 32 Forks MIT License 8 Commits 5 Opened issues

Description

A small collection of functions for Go testing.

Services available

!
?

Need anything else?

Contributors list

# 3,274
Go
CSS
Databas...
Shell
8 commits

Testing Functions for Go

Below is a small collection of testing functions for Go. You don't need to import this as a dependency. Just copy these to your project as needed.

No, seriously. They're tiny functions. Just copy them.

import (
    "fmt"
    "path/filepath"
    "runtime"
    "reflect"
    "testing"
)

// assert fails the test if the condition is false. func assert(tb testing.TB, condition bool, msg string, v ...interface{}) { if !condition { _, file, line, _ := runtime.Caller(1) fmt.Printf("\033[31m%s:%d: "+msg+"\033[39m\n\n", append([]interface{}{filepath.Base(file), line}, v...)...) tb.FailNow() } }

// ok fails the test if an err is not nil. func ok(tb testing.TB, err error) { if err != nil { _, file, line, _ := runtime.Caller(1) fmt.Printf("\033[31m%s:%d: unexpected error: %s\033[39m\n\n", filepath.Base(file), line, err.Error()) tb.FailNow() } }

// equals fails the test if exp is not equal to act. func equals(tb testing.TB, exp, act interface{}) { if !reflect.DeepEqual(exp, act) { _, file, line, _ := runtime.Caller(1) fmt.Printf("\033[31m%s:%d:\n\n\texp: %#v\n\n\tgot: %#v\033[39m\n\n", filepath.Base(file), line, exp, act) tb.FailNow() } }

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.