@@ -2,42 +2,36 @@ package user
22
33import (
44 "github.com/gone-io/gone"
5- "reflect"
5+ "github.com/stretchr/testify/assert"
6+ "go.uber.org/mock/gomock"
67 "testing"
7- "web/internal/interface/service"
8+ "web/internal/interface/entity"
9+ "web/internal/interface/mock"
810)
911
1012func Test_iUser_Register (t * testing.T ) {
11- type fields struct {
12- Flag gone.Flag
13- iDep service.IDependent
14- }
15- type args struct {
16- registerParam * entity.RegisterParam
17- }
18- tests := []struct {
19- name string
20- fields fields
21- args args
22- want * entity.LoginResult
23- wantErr bool
24- }{
25- // TODO: Add test cases.
26- }
27- for _ , tt := range tests {
28- t .Run (tt .name , func (t * testing.T ) {
29- s := & iUser {
30- Flag : tt .fields .Flag ,
31- iDep : tt .fields .iDep ,
32- }
33- got , err := s .Register (tt .args .registerParam )
34- if (err != nil ) != tt .wantErr {
35- t .Errorf ("Register() error = %v, wantErr %v" , err , tt .wantErr )
36- return
37- }
38- if ! reflect .DeepEqual (got , tt .want ) {
39- t .Errorf ("Register() got = %v, want %v" , got , tt .want )
40- }
13+ gone .RunTest (func (in struct {
14+ iUser * iUser `gone:"*"` //inject iUser for test
15+ iDependent * mock.MockIDependent `gone:"*"` //inject iDependent for mock
16+ }) {
17+ err := gone .ToError ("err" )
18+ in .iDependent .EXPECT ().DoSomething ().Return (err )
19+
20+ register , err2 := in .iUser .Register (& entity.RegisterParam {
21+ Username : "test" ,
22+ Password : "test" ,
4123 })
42- }
24+ assert .Nil (t , register )
25+ assert .Equal (t , err2 , err )
26+ }, func (cemetery gone.Cemetery ) error {
27+ controller := gomock .NewController (t )
28+
29+ //load all mocked components
30+ mock .MockPriest (cemetery , controller )
31+
32+ //bury the tested component
33+ cemetery .Bury (& iUser {})
34+
35+ return nil
36+ })
4337}
0 commit comments