结构的方法,我有这样的代码定义内部功能
func baz() {
type mockDatabase struct{}
//
// More code
//
}
我想定义的mockDatabase
的方法,所以完整的代码应该是这样的:
func baz() {
type mockDatabase struct{}
func (m *mockDatabase) Foo() {
// Implement function here
}
//
// More code
//
}
我想原因做到这一点是我注入到一个函数的依赖,我想创建一个“模拟对象”注入到该函数(函数接口作为参数,模拟对象将实现接口)。
我之外创建的结构,但它似乎更符合逻辑本地声明结构来减少杂乱的命名空间,尤其是当这些模拟对象将只使用一次。我在这里错过了什么吗?在测试功能之外定义它是否更好,因此时间不长?我应该在这里做什么?
如果它实际上是测试代码,那么确实没有名称空间混乱发生。如果你仍然担心这个问题,pie-o-pah的回答看起来并不糟糕。 – THUNDERGROOVE
似乎你很熟悉JavaScript的注入模式。在Go中,管理依赖关系更类似于Python的模块。 – PieOhPah