.. | ||
assertions.go | ||
assertions_test.go | ||
helper_test.go | ||
README.md | ||
t.go |
testequal
В этой задаче нужно реализовать 4 test helper'а, аналогичных функциям из testify:
func AssertEqual(t T, expected, actual interface{}, msgAndArgs ...interface{}) bool
func AssertNotEqual(t T, expected, actual interface{}, msgAndArgs ...interface{})
func RequireEqual(t T, expected, actual interface{}, msgAndArgs ...interface{})
func RequireNotEqual(t T, expected, actual interface{}, msgAndArgs ...interface{})
Функции проверяют на равенство expected и actual и завершают тест, если проверка не прошла. msgAndArgs попадают в описание ошибки через fmt.Sprintf.
Пример использования:
func TestMath(t *testing.T) {
AssertEqual(t, 1, 2, "1 == 2")
}
вывод теста:
=== RUN TestMath
--- FAIL: TestMath (0.00s)
math_test.go:43: not equal:
expected: 1
actual : 2
message : 1 == 2
FAIL
FAIL gitlab.com/slon/shad-go/testequal 0.003s
FAIL
В отличие от testify реализация ограничивает набор типов, с которыми умеет работать:
- Целые числа: int, in64 и др (см. тесты)
- string
- map[string]string
- []int
- []byte
Ссылки
- testing.T: https://golang.org/pkg/testing/#T
- type assertions: https://golang.org/doc/effective_go.html#interface_conversions