functional-options-for-testing-without-mocks-in-golang/