在这里,我一直试图找出模拟 sqlboiler(一个 ORM 生成器)查询,但找不到方法。
任何人都可以模拟 sqlboiler 查询吗?
例子:
func (m *Message) updateDevice(parentID int, data map[string]interface{}) (rows int64, err error) {
rows, err = automodel.Devices(qm.Where(automodel.DeviceColumns.ParentID+"=?", parentID)).UpdateAll(context.Background(), db.GetMaster(), data)
if err != nil {
return 0, err
}
return rows, err
}
func GetDeviceByID(ID int) (res *automodel.Device, err error) {
res, err = automodel.Devices(qm.Where("id=?", ID)).One(context.Background(), db.GetSlave())
if err != nil {
return nil, err
}
return res, nil
}
仅供参考:automodel是所有生成模型都存在的包(如device.go
设备表)。我们无法更改这些,因为它们是由 sqlboiler 命令生成的,如果添加了新表或表发生架构更改,则需要再次生成。
如何在编写单元测试时模拟上述两种方法中的 sqlboiler 查询?