【发布时间】:2020-01-19 12:59:46
【问题描述】:
我正在使用https://github.com/DATA-DOG/go-sqlmock 并尝试模拟与数据库的连接。
现在,我需要模拟一个 ping 命令(出于负载平衡目的)。但是,我找不到有关如何执行此操作的任何信息。
例如,我想写一个这样的测试
db, mock, _ := sqlmock.New()
// ExpectPing does not exist, but it is there anything similar?
mock.ExpectPing().WillReturnError("mock error")
err := db.Ping()
if err==nil{
t.Fatal("there should have been an error")
}
此外,我需要将这个模拟对象注入到一个函数中。假设 New(*sql.DB) 输出一个新结构。所以它必须与 *sql.DB 结构兼容。出于这个原因,sqlmock 似乎是一个不错的选择。但是,我还没有找到模拟 ping 命令的方法。
有没有办法使用这个库来做到这一点? 如果没有,是否有任何其他数据库/sql 模拟库可以做到这一点?
【问题讨论】:
-
一种选择是 fork
go-sqlmockrepo 并自己添加ExpectPing。