我一直在搜索相关内容,但目前只找到了Ariejan de Vroom在这里写的类似文章。
我想知道是否可以将goroutine引入单元测试中,以确切地计算正在运行的并发goroutine数量,并告诉我它们是否按我所述正确地生成了指定数量的goroutine。
例如,我有以下代码...
import (
"testing"
"github.com/stretchr/testify/assert"
)
func createList(job int, done chan bool) {
time.Sleep(500)
// do something
time.Sleep(500)
done <- true
return
}
func TestNewList(t *testing.T) {
list := NewList()
if assert.NotNil(t, list) {
const numGoRoutines = 16
jobs := make(chan int, numGoRoutines)
done := make(chan bool, 1)
for j := 1; j <= numGoRoutines; j++ {
jobs <- j
go createList(j, done)
fmt.Println("sent job", j)
}
close(jobs)
fmt.Println("sent all jobs")
<-done
}