Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Настройки
- Тесты пишутся в отдельных файлах, используя имя файла, который они тестируют
- Если имя файла : importantPkg.go , то имя файла с тестом должно быть: importantPkg_test.go
- Модульные тесты должны находиться в том же пакете
- Пакет testing используется для создания тестов и должен быть импортирован в каждом файле с тестами.
- sample.go
- ---------
- package main
- import "regexp”
- func IsValidEmail(addr string") bool {
- re, ok := regexp.Compile( .+@.+\..+ )
- if ok != nil {
- panic("failed to compile regex")
- } else {
- return re.Match([]byte(addr))
- }
- }
- sample_test.go
- --------------
- package main
- import "testing"
- func TestIsValidEmail(t *testing.T) {
- data := "[email protected]"
- if !IsValidEmail(data) {
- t.Errorf("IsValidEmail(%v)=false, want true", data)
- }
- }
- Доступные функции тестирования:
- В пакете testing доступно множество функций для тестирования программного обеспечения
- Fail() - Пометить тест как неудавшийся (не пройденный)
- Errorf(string) - Пометить тест как неудачный и добавить сообщение
- FailNow() - Пометить тест как неудавшийся (не пройденный) и прервать текущий тест
- Fatalf(string) - Пометить тест как неудачный (не пройденный), прервать выполнение и добавить сообщение
- Logf() - Эквивалент функции Printf(), но выводит сообщение только при неуспешном тесте
- ====================================================================
- Доступные функции тестирования
- | В пакете testing доступно множество функций для тестирования программного обеспечения
- | Fail() - Пометить тест как неудавшийся (не пройденный)
- I Errorf(string) - Пометить тест как неудачный и добавить сообщение
- | FailNow() - Пометить тест как неудавшийся (не пройденный) и прервать текущий тест
- | Fatalf(string) - Пометить тест как неудачный (не пройденный), прервать выполнение и добавить сообщение
- | Logf() - Эквивалент функции Printf(), но выводит сообщение только при неуспешном тесте
- ------------------------------------------------------------------------------
- ТЕСТОВЫЕ ТАБЛИЦЫ
- func TestIsValidEmaiITable(t *testing.T) {
- //Срез анонимных структур
- table := []struct {
- email string
- want bool
- }{
- //с их инициализацией
- {"missing@tld", false},
- {"missing@tld", true},
- }
- for _, data := range table {
- result := IsValidEmail(data.email)
- if result != data.want {
- t.Errorf("%v: %t, want: %t", data.email, result, data.want)
- }
- } //range
- } //foo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement