搞单元测试,如果碰到这些情况:
1,一个函数,内部包含了很多并且很深的调用,但是如果单单测这个函数,其实实现的功能很简单。
2,一个函数,包含了其他还未实现的调用。
3,函数内部对数据的要求极为苛刻。
那么这时候就可以考虑使用mock来处理。
mock,简而言之就是可以通过注入我们所期望返回的数据,或者我们所期望传递的参数,来避免上面那些情况,其原理则是通过反射来实现。
这次就来看看golang的mock,gomock
gomock是go官方提供的mock解决方案,主要分为两部分:gomock库和mock代码生成工具mockgen。
使用举例:
package metal
type Imetal interface {
GetName() string
SetName(string) string
}
type Metal struct {
Name string
Exchange string
}
func (self Metal) GetName() str