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 關注
- 161 瀏覽
添加回答
舉報
0/150
提交
取消