shad-go/testequal/README.md
2020-03-26 21:18:12 +03:00

44 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## testequal
В этой задаче нужно реализовать 4 test helper'а, аналогичных функциям из [testify](https://github.com/stretchr/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 реализация ограничивает набор типов, с которыми умеет работать:
1. Целые числа: int, in64 и др (см. тесты)
2. string
3. map[string]string
4. []int
5. []byte
## Ссылки
1. testing.T: https://golang.org/pkg/testing/#T
2. type assertions: https://golang.org/doc/effective_go.html#interface_conversions