that's a really useful testing strategy. I used to to write automated tests using an approach very similar to yours, but I was often bothered that I needed to write code in a programming language to set up the mocked data. After a while the testing code gets really verbose. Not just the mocking setup but also the assertion logic. I wanted an easier way that didn't involve writing much code, so I ended up building "mock":
Uhm, is passing opts by pointer, as "*github.RepositoryListByUserOptions" instead of by value intended? I suppose it can be used to resume the iteration from where it was stopped?
https://dhuan.github.io/mock/