我试着去嘲笑https://gopkg.in/olivere/elastic.v2其被证明是一场噩梦的最佳方式。我通常使用gomock,但我不能因为theres没有接口文件的dep。什么是最好的方式去做这件事?什么是嘲笑在GO的依赖时的依赖性不公开的接口
2
A
回答
5
创建自己的界面。
它甚至不需要是完整的,或者说,只需要支付实际使用的方法。
假设您的类型为Foo
,其方法如下:Bar()
,Baz()
和Qux()
。
而你在你的代码中使用此:
func Frobnicate(f *Foo) err {
if err := f.Bar() error; err != nil {
return err
}
return nil
}
只是将其更改为使用新的自定义界面:
type barer interface() {
Bar() error
}
然后更新您的函数签名:
func Frobnicate(f fooer) err {
// The rest the same as before
现在创建自己的fooer
实现,并模拟。
如果您需要模拟类型是一个简单的结构,而不是与方法的数据,你可能会缠上getter/setter方法的方法,这样的接口会解决它。例如,鉴于此类型:
type Foo struct {
Name string
}
您可以创建一个包装:
type FooWrapper struct {
Foo
}
func (w *FooWrapper) Name() string {
return w.Foo.Name
}
现在Foo
类型可以使用自定义的界面嘲讽访问。
相关问题
- 1. C#中的嘲笑依赖不工作
- 2. Jmockit /春嘲笑的依赖仍然调用真正的依赖
- 3. NoSuchBeanDefinitionException嘲笑豆的依赖关系
- 4. 嘲笑的问题和依赖注入
- 5. 非接口依赖嘲笑框架的C#
- 6. 使用依赖注入嘲笑C++类
- 7. Mockito:嘲笑“黑盒子”依赖关系
- 8. 嘲笑具有依赖性的对象的数据上下文
- 9. 什么是WPF中的依赖属性
- 10. 嘲笑在外部不可见的依赖关系
- 11. 显式接口的依赖属性
- 12. 为什么依赖属性?
- 13. 什么是Spring对依赖注入的最小依赖?
- 14. 在使用FakeRequest时嘲笑内部依赖关系
- 15. 什么是依赖注入?
- 16. 机器依赖性是什么意思?
- 17. jQuery的依赖性
- 18. 进口,依赖
- 19. 嘲笑golang中的外部结构依赖关系
- 20. 依赖注入接口
- 21. 什么是GcmTaskService(GCM)的依赖关系?
- 22. 什么是依赖查找和Ioc的
- 23. reg:sqlContext的库依赖是什么?
- 24. maven依赖项的名称是什么?
- 25. 什么是android.media.tv的依赖关系
- 26. 什么是PHP中的“包”依赖?
- 27. 什么是ntpd的systemd依赖关系?
- 28. 什么是隐藏的依赖关系?
- 29. 什么是Android中的依赖关系?
- 30. JavaScript中的“依赖实现”是什么?
您可以自行定义的接口封装的任何出口的功能,记得在Go接口,实现** **隐。 – mkopriva
@mkopriva这就是我一直试图做的,但问题是,我必须回到在包中创建创建我的接口,这导致了许多问题 –
sepcifically什么问题结构?您介意更新您的问题并描述这些具体问题吗? – mkopriva