Skip to content

Latest commit

 

History

History
22 lines (18 loc) · 746 Bytes

File metadata and controls

22 lines (18 loc) · 746 Bytes

Правильный ответ - добавить контекст и вынести period. Тогда мы сможем управлять временем в тестах без добавления каких-то зависимостей от этих тестов.

func (p *Processor) Run(ctx context.Context, period time.Duration) {

	ticker := time.NewTicker(period)
	defer ticker.Stop()

	for {
		select {
		case <-ctx.Done():
			// Контекст отменен, выходим из цикла
			return
		case <-ticker.C:
			// Продолжаем цикл
      // ...
		}
	}
}

Если тебе "что-то" мешает написать тест, значит это "что-то" не на своём месте.