Advertisement
AlexNovoross87

testing

May 12th, 2025
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 3.43 KB | None | 0 0
  1. Настройки
  2. Тесты пишутся в отдельных файлах, используя имя файла, который они тестируют
  3. Если имя файла : importantPkg.go , то имя файла с тестом должно быть: importantPkg_test.go
  4. Модульные тесты должны находиться в том же пакете
  5. Пакет testing используется для создания тестов и должен быть импортирован в каждом файле с тестами.
  6.  
  7. sample.go
  8. ---------
  9. package main
  10. import "regexp”
  11.  
  12. func IsValidEmail(addr string") bool {
  13.     re, ok := regexp.Compile( .+@.+\..+ )
  14.     if ok != nil {
  15.           panic("failed to compile regex")
  16.           } else {
  17.          return re.Match([]byte(addr))
  18.   }
  19. }
  20.  
  21. sample_test.go
  22. --------------
  23. package main
  24. import "testing"
  25. func TestIsValidEmail(t *testing.T) {
  26.     data := "[email protected]"
  27.     if !IsValidEmail(data) {
  28.         t.Errorf("IsValidEmail(%v)=false, want true", data)
  29.     }
  30. }
  31.  
  32. Доступные функции тестирования:
  33. В пакете testing доступно множество функций для тестирования программного обеспечения
  34. Fail() - Пометить тест как неудавшийся (не пройденный)
  35. Errorf(string) - Пометить тест как неудачный и добавить сообщение
  36. FailNow() - Пометить тест как неудавшийся (не пройденный) и прервать текущий тест
  37. Fatalf(string) - Пометить тест как неудачный (не пройденный), прервать выполнение и добавить сообщение
  38. Logf() - Эквивалент функции Printf(), но выводит сообщение только при неуспешном тесте
  39.  
  40. ====================================================================
  41.  
  42. Доступные функции тестирования
  43. | В пакете testing доступно множество функций для тестирования программного обеспечения
  44. | Fail() - Пометить тест как неудавшийся (не пройденный)
  45. I Errorf(string) - Пометить тест как неудачный и добавить сообщение
  46. | FailNow() - Пометить тест как неудавшийся (не пройденный) и прервать текущий тест
  47. | Fatalf(string) - Пометить тест как неудачный (не пройденный), прервать выполнение и добавить сообщение
  48. | Logf() - Эквивалент функции Printf(), но выводит сообщение только при неуспешном тесте
  49.  
  50.  
  51. ------------------------------------------------------------------------------
  52.  
  53. ТЕСТОВЫЕ ТАБЛИЦЫ
  54.  
  55. func TestIsValidEmaiITable(t *testing.T) {
  56.     //Срез анонимных структур
  57.   table := []struct {
  58.         email string
  59.         want  bool
  60.     }{
  61.         //с их инициализацией
  62.     {"[email protected]", true},
  63.         {"missing@tld", false},
  64.         {"missing@tld", true},
  65.     }
  66.  
  67.     for _, data := range table {
  68.         result := IsValidEmail(data.email)
  69.         if result != data.want {
  70.             t.Errorf("%v: %t, want: %t", data.email, result, data.want)
  71.         }
  72.     } //range
  73.  
  74. } //foo
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement