У меня есть следующая функция, которая печатает точки на терминале при выполнении некоторого процесса, код работает как положено , но теперь я хочу проверить это.Как мне это сделать
func printdot(finish <-chan struct{}) {
t := time.NewTicker(time.Second)
defer t.Stop()
for {
select {
case <-t.C:
fmt.Print(".")
case <-finish:
return
}
}
}
Это тест
func Test_printdot(t *testing.T) {
finish := make(chan struct{})
start := time.Now()
go printdot(finish)
time.Sleep(1 * time.Second)
sec := time.Since(start).Seconds()
switch int(sec) {
case 0:
// Output:
case 1:
// Output: .
case 2:
// Output: ..
case 3:
// Output: ...
default:
t.Error(“Too much time…”)
}
close(finish)
}
Теперь тест продолжается без остановки, даже если я использую готовый код, есть идеи, как его улучшить?