Tôi đã tìm kiếm xung quanh, nhưng cho đến nay chỉ có một bài viết tương tự được viết here bởi Ariejan de Vroom.Kiểm tra Golang Goroutine
Tôi muốn biết nếu tôi có thể đưa goroutine vào thử nghiệm đơn vị sao cho có thể đếm chính xác số đồng thời của goroutines đang chạy và có thể cho tôi biết nếu chúng được sinh ra chính xác trong số tôi đã nói.
Tôi có đoạn mã sau ví dụ ..
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
}
biết chính xác là bạn đang cố gắng để xác minh? Rằng bạn đang bắt đầu 16 goroutines? Tôi không hoàn toàn theo dõi vấn đề bạn đang cố giải quyết. – sberry
Tại sao bạn gửi int đến kênh công việc? Có vẻ như bạn có 2 thiết kế ở đó. – LenW