golang / mock

GoMock is a mocking framework for the Go programming language.
Apache License 2.0
9.26k stars 608 forks source link

mockgen chokes on embedded interfaces #10

Closed RomanSaveljev closed 8 years ago

RomanSaveljev commented 8 years ago

I was able to reduce my problem to this minimal case:

package test

import (
    "io"
)

type Iface interface {
    io.WriteCloser
}

Then mockgen fails:

$ $GOPATH/bin/mockgen -source iface.go -package test
2015/09/18 12:16:35 Loading input failed: iface.go:8:5: unknown embedded interface io.WriteCloser
$ $GOPATH/bin/mockgen -imports io=io -source iface.go -package test
2015/09/18 12:16:23 Loading input failed: iface.go:8:5: unknown embedded interface io.WriteCloser

Thanks for looking into the issue

RomanSaveljev commented 8 years ago

Seems to work in reflect mode:

$ $GOPATH/bin/mockgen test Iface
...

This is enough for me, feel free to close, if no more action is deemed

dsymonds commented 8 years ago

Yes, use reflect mode whenever possible. It's much more likely to get these kinds of cases right.