jeudi 16 janvier 2020

trying to understand how reflect.TypeOf() works

I am currently running into an issue where I am unable to have a unit test pass for a simple function. I currently have this test setup and it keeps failing.

func TestNewLogger(t *testing.T) {
tests := []struct {
    name string
    want *logrus.Logger
}{
    {
        name: "test new logger",
        want: &logrus.Logger{Formatter: &logrus.TextFormatter{
            DisableTimestamp: true,
        }},
    },
}
for _, tt := range tests {
    t.Run(tt.name, func(t *testing.T) {
        if got := logger.NewLogger(); reflect.TypeOf(got) == reflect.TypeOf(tt.want) {
            t.Errorf("NewLogger() = %v, want %v", reflect.TypeOf(got), reflect.TypeOf(tt.want))
        }
    })
}

// NewLogger returns a new Logger
func NewLogger() *logrus.Logger {
    logger := logrus.New()
    logger.Formatter = &logrus.TextFormatter{
        DisableTimestamp: true,
    }
    return logger
}

ouput:

=== RUN   TestNewLogger
=== RUN   TestNewLogger/test_new_logger
--- FAIL: TestNewLogger (0.00s)
    --- FAIL: TestNewLogger/test_new_logger (0.00s)
     ../logger/logger_test.go:26: NewLogger() = *logrus.Logger, want *logrus.Logger
FAIL
FAIL
Error: Tests failed.

I don't understand why this fails and *logrus.Logger == *logrus.Logger if returning not true.

Aucun commentaire:

Enregistrer un commentaire