Я пытаюсь принять шаблон Cake, но у меня возникают трудности с адаптацией к этим стилям программирования, особенно в тех случаях, когда тестируются модули.
Предположим, что у меня есть следующие бизнес-объекты:
trait Vet {
def vaccinate(pet: Pet)
}
trait PetStore { this: Vet =>
def sell(pet: Pet) {
vaccinate(pet)
// do some other stuff
}
}
Теперь, я бы хотел проверить PetStore, издеваясь над функциями Vet. Если я использовал композицию, я создавал макет [Vet] и передавал его в конструктор PetStore, а затем программировал макет, как в мире Java. Тем не менее, я не могу найти никакой ссылки на то, как люди делают это с шаблоном торта.
Одним из возможных решений было бы внедрение вакцинации() на каждом тестовом сценарии в соответствии с ожидаемым использованием, но это не позволяет мне проверять правильность начисления маков, не позволяет мне использовать сокеты и т.д..
Итак - как люди используют Cake Pattern с макетными объектами?