которые лежать в одном пакете
// managers/transasctions.go
type TransactionsManager struct {
encryptor *utils.Encryptor
logger log.Logger
ownersManager *OnwersManager
transactionsRepository *repositories.TransactionsRepository
resendsRepository *repositories.resendsRepository
networksRepository *repositories.NetworksRepository
nodeRpcFactory *services.NodeRpcFactory
nodeAbiFactory *services.NodeAbiFactory
}
// managers/owners.go
type OwnersManager struct {
ownersRepository *repositories.OwnersRepository
networksRepository *repositories.NetworksRepository
encryptor *utils.Encryptor
owners []*models.Owner
}
я хочу для них написать тесты, а следовательно, надо замокать все репозитории, которые есть
вот вопрос, куда пихать интерфейсы со всеми нужными методами. вот мои варики
1) в каждом файле создавать свои интерфейсы, но т.к. файлы лежат в одном пакете, то хз, как их именовать
2) создать файл managers/interfaces.go и там заинитить все интерфейсы
3) создать отдельно пакет interfaces/managers.go, interfaces/repositories.go
что бы вы посоветовали?
я посоветовал бы распилить "менеджеры" на юзкейсы и сделать каждому частный набор зависимостей-интрефейсов
ладно, если не переиливать на юзкейсы, то чтобы посоветовали?
если много пересечений, то 2. если пересечений не очень много, то 1
пересечений много одни и те же репы юзаются в нескольких менеджерах
если первый вариант использовать, то я хз, как назвать интерфейсы для каждого мендежра, тк они находятся в другом пакете
Обсуждают сегодня