случае — консьюмер кафки), обрабатывающий данные, и на основании внутреннего стейта, отправляющий обратно в канал (тоже кафка). Я хочу это протестировать, и вопрос таков: я хочу мокнуть в структуру моки, которые позволят подменить реализацию кафки на обычный канал. Допустим, интерфейс такой:
                  
                  
                  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
Обсуждают сегодня