- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我正在尝试使用 gomock 模拟以下方法
func GetS(tenantName string) (*mgo.Session, error) {
ctx := apiContext.TContext{}
url, err := connectionURLList.get(tenantName)
if err != nil {
log.GenericWarning(ctx,
fmt.Sprintf("connection to %s not yet created, creating one: %v", tenantName, err), nil)
if err := connectMongo(tenantName); err == nil {
return GetS(tenantName) //singleton recursion to again call GetS
}
return nil, err
}
// ignoring error, expected we will always setting session in session map
session, _ := connectionList.get(url)
return session.Copy(), err
}
我的界面
type MongoManager interface {
GetS(tenantName string)
}
func TestGetS(t *testing.T) {
//var mgoCall *mgo.Session
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
mockManagerObj := mocks.NewMockMongoManager(mockCtrl)
mockManagerObj.EXPECT().GetS("cacargroup").Return(nil)
}
我收到以下错误。有人可以帮忙吗
$ go test
--- FAIL: TestGetS (0.00s) mongoManager_test.go:20: missing call(s) to *mocks.MockMongoManager.GetS(is equal to cacargroup) /Users/charles/workspace/src/bitbucket.org/tekion/tbaas/mongoManager/mongoManager_test.go:16 mongoManager_test.go:20: aborting test due to missing call(s) FAIL exit status 1
最佳答案
您实际上看到接口(interface)中的方法是用错误的返回类型实现的。但是您正在使用它,就像它不返回任何内容并链接实现一样。只需删除 GetS
的返回类型即可。
type fn func(string) (*mgo.Session, error)
type MongoManager interface {
NewFunction(GetS, "cascade")
}
func TestGetS(t *testing.T) {
//var mgoCall *mgo.Session
mockCtrl := gomock.NewController(t)
defer mockCtrl.Finish()
mockManagerObj := mocks.NewMockMongoManager(mockCtrl)
mockManagerObj.EXPECT().GetS("cacargroup").Return(nil)
}
此外,您还必须将其从 GetS
函数中删除
func NewFunction(GetS fn, value string){
GetS("cascade")
}
func GetS(tenantName string) (*mgo.Session, error){
ctx := apiContext.TContext{}
url, err := connectionURLList.get(tenantName)
if err != nil {
log.GenericWarning(ctx,
fmt.Sprintf("connection to %s not yet created, creating one: %v", tenantName, err), nil)
if err := connectMongo(tenantName); err == nil {
return GetS(tenantName) //singleton recursion to again call GetS
}
return nil, err
}
// ignoring error, expected we will always setting session in session map
session, _ := connectionList.get(url)
}
关于gomock, Go,芒果包,MongoMock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48946174/
是否可以用Java开发wp7.5(mango)应用程序?我在 wp7 启动期间所知道的是,它暂时没有任何适用于 wp7 的 java 运行时。现在怎么样? 谢谢。 最佳答案 没有。目前开发 Windo
我正在使用以下代码在设备上创建动态磁贴: ShellTile tile = ShellTile.ActiveTiles.FirstOrDefault(); StandardTileData newTi
是否可以使用 Cloudant Query/CouchDB 2.0 Find 设置 $regex 标志? 具体来说,我想要一个不区分大小写的搜索,全局也很有用。 在 JavaScript 中我会这样做
我正在向我的页面动态添加内容(使用 AJAX)。这工作正常,除了不会自动应用的样式。解决此问题的方法是使用 .trigger("create");(例如 $('#content').html(data
我正在尝试在删除父行时删除 Db 中的所有子级的两列之间建立 FK 关系。我的定义如下: [Table] public class Parent { [Colu
我有以下问题: 我将 facebook-c#-sdk 用于 Windows Phone 7.1(芒果版),取自此处: http://facebooksdk.codeplex.com/releases/
我是一名优秀的程序员,十分优秀!