| ▲ | the_gipsy 2 days ago | |
Is this pattern commonly used? Any drawbacks? Sounds much better than the interface boilerplate if it's just for the sake of testing. | ||
| ▲ | jgdxno 2 days ago | parent | next [-] | |
At work we use it heavily. You don't really see "a zillion interfaces" after a while, only set of dependencies of a package which is easy to read, and easy to understand. "makes it hard to cone up with good names" is not really a problem, if you have a `CreateRequest` method you name the interface `RequestCreator`. If you have a request CRUD interface, it's probably a `RequestRepository`. The benefits outweigh the drawbacks 10 to one. The most rewarding thing about this pattern is how easy it is to split up large implementations, and _keep_ them small. | ||
| ▲ | durbatuluk 2 days ago | parent | prev [-] | |
Any method you forget to overwrite from the embed struct gives a false "impression" you can call any method from mockS3. Most of time code inside test will be:
Go is flexible, you can define a complete interface at producer and consumers still can use their own interface only with required methods if they want. | ||