assert

package module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2016 License: MIT Imports: 6 Imported by: 0

README

Package assert

Build Status GoDoc

Package assert is a Basic Assertion library used along side native go testing

Installation

Use go get.

go get gopkg.in/go-playground/assert.v1

or to update

go get -u gopkg.in/go-playground/assert.v1

Then import the validator package into your own code.

import . "gopkg.in/go-playground/assert.v1"

Usage and documentation

Please see http://godoc.org/gopkg.in/go-playground/assert.v1 for detailed usage docs.

Example:
package whatever

import (
	"errors"
	"testing"
	. "gopkg.in/go-playground/assert.v1"
)

func AssertCustomErrorHandler(t *testing.T, errs map[string]string, key, expected string) {
	val, ok := errs[key]

	// using EqualSkip and NotEqualSkip as building blocks for my custom Assert function
	EqualSkip(t, 2, ok, true)
	NotEqualSkip(t, 2, val, nil)
	EqualSkip(t, 2, val, expected)
}

func TestEqual(t *testing.T) {

	// error comes from your package/library
	err := errors.New("my error")
	NotEqual(t, err, nil)
	Equal(t, err.Error(), "my error")

	err = nil
	Equal(t, err, nil)

	fn := func() {
		panic("omg omg omg!")
	}

	PanicMatches(t, func() { fn() }, "omg omg omg!")
	PanicMatches(t, func() { panic("omg omg omg!") }, "omg omg omg!")

	// errs would have come from your package/library
	errs := map[string]string{}
	errs["Name"] = "User Name Invalid"
	errs["Email"] = "User Email Invalid"

	AssertCustomErrorHandler(t, errs, "Name", "User Name Invalid")
	AssertCustomErrorHandler(t, errs, "Email", "User Email Invalid")
}

How to Contribute

There will always be a development branch for each version i.e. v1-development. In order to contribute, please make your pull requests against those branches.

If the changes being proposed or requested are breaking changes, please create an issue, for discussion or create a pull request against the highest development branch for example this package has a v1 and v1-development branch however, there will also be a v2-development brach even though v2 doesn't exist yet.

I strongly encourage everyone whom creates a usefull custom assertion function to contribute them and help make this package even better.

License

Distributed under MIT License, please see license file in code for more details.

Documentation

Overview

Package assert provides some basic assertion functions for testing and also provides the building blocks for creating your own more complex validations.

package whatever

import (
	"errors"
	"testing"
	. "gopkg.in/go-playground/assert.v1"
)

func AssertCustomErrorHandler(t *testing.T, errs map[string]string, key, expected string) {
	val, ok := errs[key]

	// using EqualSkip and NotEqualSkip as building blocks for my custom Assert function
	EqualSkip(t, 2, ok, true)
	NotEqualSkip(t, 2, val, nil)
	EqualSkip(t, 2, val, expected)
}

func TestEqual(t *testing.T) {

	// error comes from your package/library
	err := errors.New("my error")
	NotEqual(t, err, nil)
	Equal(t, err.Error(), "my error")

	err = nil
	Equal(t, err, nil)

	fn := func() {
		panic("omg omg omg!")
	}

	PanicMatches(t, func() { fn() }, "omg omg omg!")
	PanicMatches(t, func() { panic("omg omg omg!") }, "omg omg omg!")

	// errs would have come from your package/library
	errs := map[string]string{}
	errs["Name"] = "User Name Invalid"
	errs["Email"] = "User Email Invalid"

	AssertCustomErrorHandler(t, errs, "Name", "User Name Invalid")
	AssertCustomErrorHandler(t, errs, "Email", "User Email Invalid")
}

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Equal

func Equal(t *testing.T, val1, val2 interface{})

Equal validates that val1 is equal to val2 and throws an error with line number

func EqualSkip

func EqualSkip(t *testing.T, skip int, val1, val2 interface{})

EqualSkip validates that val1 is equal to val2 and throws an error with line number but the skip variable tells EqualSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func IsEqual

func IsEqual(val1, val2 interface{}) bool

IsEqual returns whether val1 is equal to val2 taking into account Pointers, Interfaces and their underlying types

func MatchRegex added in v1.2.1

func MatchRegex(t *testing.T, value string, regex interface{})

MatchRegex validates that value matches the regex, either string or *regex and throws an error with line number

func MatchRegexSkip added in v1.2.1

func MatchRegexSkip(t *testing.T, skip int, value string, regex interface{})

MatchRegexSkip validates that value matches the regex, either string or *regex and throws an error with line number but the skip variable tells MatchRegexSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func NotEqual

func NotEqual(t *testing.T, val1, val2 interface{})

NotEqual validates that val1 is not equal val2 and throws an error with line number

func NotEqualSkip

func NotEqualSkip(t *testing.T, skip int, val1, val2 interface{})

NotEqualSkip validates that val1 is not equal to val2 and throws an error with line number but the skip variable tells NotEqualSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func NotMatchRegex added in v1.2.1

func NotMatchRegex(t *testing.T, value string, regex interface{})

NotMatchRegex validates that value matches the regex, either string or *regex and throws an error with line number

func NotMatchRegexSkip added in v1.2.1

func NotMatchRegexSkip(t *testing.T, skip int, value string, regex interface{})

NotMatchRegexSkip validates that value matches the regex, either string or *regex and throws an error with line number but the skip variable tells NotMatchRegexSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

func PanicMatches

func PanicMatches(t *testing.T, fn func(), matches string)

PanicMatches validates that the panic output of running fn matches the supplied string

func PanicMatchesSkip

func PanicMatchesSkip(t *testing.T, skip int, fn func(), matches string)

PanicMatchesSkip validates that the panic output of running fn matches the supplied string but the skip variable tells PanicMatchesSkip how far back on the stack to report the error. This is a building block to creating your own more complex validation functions.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL