Попытка макета структуры для тестирования. Но следующий код имеет ошибку:
./test.go:32:17: cannot use NewClass() (type *Class) as type mockClass in return argument:
*Class does not implement mockClass (wrong type for Query method)
have Query() *Iterator
want Query() mockIterator
Почему я не могу этого сделать?
func NewClass() *Class {
return &Class{}
}
type Class struct{}
func (Class) Query() *Iterator {
return &Iterator{}
}
type Iterator struct{}
func (Iterator) Next() error {
return nil
}
type mockClass interface {
Query() mockIterator
}
type mockIterator interface {
Next() error
}
var newMock = func() mockClass {
return NewClass()
}
В тесте я хочу присвоить newMock
что-то вроде:
newMock = funcr() mockClass {
return &fakeClass{}
}
Структуры Class
и Iterator
не находятся под моим контролем. Эти структуры взяты из внешней библиотеки.