I have a package that creates objects with a factory. The structs have unexported fields, e.g.:
package fetcher
type GitFetcher struct {
uri string
}
I have another package that parses some config files and then builds another object which uses the above objects:
package config
type Source struct {
fetcher GitFetcher
}
I'm trying to test my config
package. I want to build some expected objects, but since my tests are in config
and my GitFetcher
is in fetcher
I can't just create the objects I want, e.g.:
package config
expected := GitFetcher{
uri: "example.com/repo.git" // doesn't work. Field isn't exported.
}
How can I build objects across packages for testing like this? I don't want to use the fetcher
factory method since the parameters it takes aren't straightforward.