check.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. package check_test
  2. import (
  3. "fmt"
  4. "reflect"
  5. "testing"
  6. )
  7. //Expect return a checker
  8. func Expect(t *testing.T) Checker {
  9. return Checker{T: t}
  10. }
  11. // Checker test checking helper
  12. type Checker struct {
  13. *testing.T
  14. }
  15. //NotErr check for error
  16. func (t Checker) NotErr(err error) {
  17. msg := fmt.Sprintf("NOTERR Expect NOT [error] got '%v'", err)
  18. if err != nil {
  19. t.fail(msg)
  20. }
  21. t.pass(msg)
  22. }
  23. // Err expects param to be error
  24. func (t Checker) Err(err error) {
  25. msg := fmt.Sprintf("ERR: Expect [error] got '%v'", err)
  26. if err == nil {
  27. t.fail(msg)
  28. }
  29. t.pass(msg)
  30. }
  31. //Eq check if equal
  32. func (t Checker) Eq(a, b interface{}) {
  33. msg := fmt.Sprintf("EQ Expect '%v' got '%v'", b, a)
  34. if !reflect.DeepEqual(a, b) {
  35. t.fail(msg)
  36. }
  37. t.pass(msg)
  38. }
  39. //Diff check if different
  40. func (t Checker) Diff(a, b interface{}) {
  41. msg := fmt.Sprintf("DIFF Expect NOT '%v' got '%v'", a, b)
  42. if reflect.DeepEqual(a, b) {
  43. t.fail(msg)
  44. }
  45. t.pass(msg)
  46. }
  47. // NotNil expect param to be non nil
  48. func (t Checker) NotNil(a interface{}) {
  49. msg := fmt.Sprintf("NOTNIL Expect NOT [nil] got %v", a)
  50. if a == nil {
  51. t.fail(msg)
  52. }
  53. t.pass(msg)
  54. }
  55. func (t Checker) fail(msg string) {
  56. t.Fatalf("\033[31m[FAIL] %s\033[0m", msg)
  57. }
  58. func (t Checker) pass(msg string) {
  59. t.Logf("\033[32m[PASS]\033[m %s", msg)
  60. }