sqlmock 需要按顺序匹配 SQL。但是,如果我的代码中有并发查询,就像这样: condition1 := make(map[string]string) condition2 := make(map[string]string) var count int64 var user User var task Task var wg sync.WaitGroup wg.Add(3) wgDone := make(chan interface{}) errCh := make(chan error) go func(wg *sync.WaitGroup) { defer wg.Done() err := conn.Where(condition1).Find(&user).Error if err != nil { errCh <- err } }(&wg) go func(wg *sync.WaitGroup) { defer wg.Done() err := conn.Where(condition2).Find(&task).Error if err != nil { errCh <- err } }(&wg) go func(wg *sync.WaitGroup) { defer wg.Done() err := conn.Count(&count).Error if err != nil { errCh <- err } }(&wg) go func() { wg.Wait() close(wgDone) }() select { case err := <-errCh: return err case <-wgDone: break } ...据说我们无法知道SQL的执行顺序。所以我不知道如何使用sqlmock来正确匹配sql。
- 1 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消