Ho cercato in giro, ma finora è andato solo articolo simile scritto here di Ariejan de Vroom.Test Golang Goroutine
Vorrei sapere se riesco a portare la goroutine nei test di unità in modo tale che possa contare con precisione il numero simultaneo di goroutine in esecuzione e può dirmi se sono generati correttamente goroutine nel numero che ho indicato.
ho il seguente codice di esempio ..
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
}
Che cosa stai cercando di verificare? Che stai iniziando 16 goroutine? Non sto seguendo il problema che stai cercando di risolvere. – sberry
Perché si invia l'int al canale di lavoro? Sembra che tu abbia 2 disegni lì. – LenW