tests.go 852 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package tests
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/jinzhu/gorm"
  6. )
  7. func Now() *time.Time {
  8. now := time.Now()
  9. return &now
  10. }
  11. func RunTestsSuit(t *testing.T, db *gorm.DB) {
  12. TestCreate(t, db)
  13. }
  14. func TestCreate(t *testing.T, db *gorm.DB) {
  15. db.AutoMigrate(&User{})
  16. db = db.Debug()
  17. t.Run("Create", func(t *testing.T) {
  18. var user = User{
  19. Name: "create",
  20. Age: 18,
  21. Birthday: Now(),
  22. }
  23. if err := db.Create(&user).Error; err != nil {
  24. t.Errorf("errors happened when create: %v", err)
  25. }
  26. if user.ID == 0 {
  27. t.Errorf("user's primary key should has value after create, got : %v", user.ID)
  28. }
  29. var newUser User
  30. if err := db.Where("id = ?", user.ID).First(&newUser).Error; err != nil {
  31. t.Errorf("errors happened when query: %v", err)
  32. } else {
  33. AssertEqual(t, newUser, user, "Name", "Age", "Birthday")
  34. }
  35. })
  36. }