お世話になっております。
下記のような構造体が与えられている状態でcmp.Diff
を使用した構造体比較のテストを書いています。
要件としては、IgnoreFields
でフィールドを無視することが可能ですが、UserのPasswordとModelのCreatedAtの複数を無視したい場合はどのようにすれば可能でしょうか?
go
1type User struct { 2 Model 3 Name string 4 Password string 5} 6 7type Model struct { 8 ID uint `gorm:"primary_key"` 9 CreatedAt time.Time 10 UpdatedAt time.Time 11 DeletedAt *time.Time `sql:"index"` 12} 13 14func TestCreateUser(t *testing.T) { 15 (省略) 16 for _, tt := range tests { 17 t.Run(tt.name, func(t *testing.T) { 18 CreateUser(tt.args.db, tt.args.query) 19 gotUser := FindUserByID(db, "1") 20 // cmpopts.IgnoreFields(Model{}, "ID", "CreatedAt", "UpdatedAt")も無視したい 21 ignoreOpt := cmpopts.IgnoreFields(User{}, "Password") 22 if diff := cmp.Diff(gotUser, tt.wantUser, ignoreOpt); diff != "" { 23 t.Errorf("TestCreateUser differs: (-got +want)\n%s", diff) 24 } 25 }) 26 } 27}
Version
Go 1.12.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/08/03 06:37