package
0.0.0-20241225174012-7a0820eadc6a
Repository: https://github.com/chtonad0000/golang.git
Documentation: pkg.go.dev
# README
testequal
В этой задаче нужно реализовать 4 test helper'а, аналогичных функциям из testify:
func AssertEqual(t T, expected, actual interface{}, msgAndArgs ...interface{}) bool
func AssertNotEqual(t T, expected, actual interface{}, msgAndArgs ...interface{}) bool
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, int64 и др (см. тесты)
- 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
# Functions
AssertEqual checks that expected and actual are equal.
AssertNotEqual checks that expected and actual are not equal.
RequireEqual does the same as AssertEqual but fails caller test immediately.
RequireNotEqual does the same as AssertNotEqual but fails caller test immediately.
# Interfaces
T is an interface wrapper for *testing.T that contains only a small subset of methods.