Ich habe herum gesucht, aber bisher nur ähnlichen Artikel geschrieben here von Ariejan de Vroom.Test Golang Goroutine
Ich würde gerne wissen, ob ich goroutine in Einheit testen kann, so dass es genau die gleichzeitige Anzahl von goroutines läuft läuft und kann mir sagen, ob sie korrekt goroutine in der Zahl, die ich angegeben habe.
Ich habe den folgenden Code zum Beispiel ..
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
}
Was genau Sie überprüfen wollen? Dass du 16 Göroutinen beginnst? Ich folge nicht ganz dem Problem, das du lösen willst. – sberry
Warum senden Sie den Int an den Jobkanal? Es scheint, als hättest du 2 Designs dort. – LenW