случае — консьюмер кафки), обрабатывающий данные, и на основании внутреннего стейта, отправляющий обратно в канал (тоже кафка). Я хочу это протестировать, и вопрос таков: я хочу мокнуть в структуру моки, которые позволят подменить реализацию кафки на обычный канал. Допустим, интерфейс такой:
type Consumer interface {
Consume(ctx context.Context) ([]byte, error)
}
вот такой мок:
type mockConsumer struct {}
func (c mockConsumer) Consume(ctx context.Context) ([]byte, error) {
return []byte(`...some msg...`), nil
}
Вопрос: где эти моки хранить? Рядом с тестом? Если да, то проблема в том, что этот мок может пригодиться много где. Или же хранить рядом с интерфейсом? Тогда придеться его экспортировать... Как правильно делать?
не знаю как остальные и как правильно, но я с моками стараюсь обращаться так словно это валидная для бизнеса реализация, следоватиельно как я храню и использую другие реализации, так и эту хранил бы и использовал
тогда проблема в том, что моки нужно экспортировать, что крайне неудобно с точки зрения автокомлита
обычно рядом с тестом, да в редких случаях он лежит в testutil внутри internal
Обсуждают сегодня