1

在这里,我一直试图找出模拟 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 查询?

4

0 回答 0