Comments 4
Я так понимаю, что классы МОКов нужно все-таки писать вручную, да? Сравнивали с Cuckoo? (https://github.com/Brightify/Cuckoo) Там кодогенерация, которая все МОКи генерирует автоматически и все что остается сделать в тестах:
let mockService = MockService()
let instance = Instance(service: mockService)
instance.someMethod()
verify(mockService).serviceMethod(parameter: equal(to: correctValue))в этом и фишка кодогенерации — меньше кода вручную.
При этом добавляются моменты вроде «научится пользоваться тулзой кодогенерации», а в идеале ещё и автоматизировать этот процесс.
Плюс мне показалось неудобным то, что при подключении через SPM встроенный в Xcode 11 у нас по сути н предполагается лазить вовнутрь стянутого репозитория. Как следствие, тулзу кодогенераци нужно как-то собирать самостоятельно.
При этом добавляются моменты вроде «научится пользоваться тулзой кодогенерации», а в идеале ещё и автоматизировать этот процесс.
Плюс мне показалось неудобным то, что при подключении через SPM встроенный в Xcode 11 у нас по сути н предполагается лазить вовнутрь стянутого репозитория. Как следствие, тулзу кодогенераци нужно как-то собирать самостоятельно.
Но я так и не понял что удобнее: самому все время писать МОКи руками или научиться пользоваться тулзой кодогенерации один раз?
Плюс мне показалось неудобным то, что при подключении через SPM встроенный в Xcode 11 у нас по сути н предполагается лазить вовнутрь стянутого репозитория.
Это конкретно про Cuckoo или про какую-то другую тулзу?
> Это конкретно про Cuckoo или про какую-то другую тулзу?
да, с этим столкнулся с Cuckoo
> Но я так и не понял что удобнее
Мне лично больше нравится подход, когда написание моков является настолько простым, что не думаешь «эх, нагенерить бы...».
Генерация — это хорошо. Но не везде
1. Настроить генерацию занимает 30 минут +0..2 часа в зависимости от проекта. Писать мок (простой) — это 0.5..1 минута на интерфейс.
2. Генерацию надо а)уметь и б)передавать знания о поддержке
3. Для генерации приходится обычно «засорять» исходники и интерфейсы коментариями/избыточным наследованием (чтобы тулза знала, на что генерить, а на что — нет)
да, с этим столкнулся с Cuckoo
> Но я так и не понял что удобнее
Мне лично больше нравится подход, когда написание моков является настолько простым, что не думаешь «эх, нагенерить бы...».
Генерация — это хорошо. Но не везде
1. Настроить генерацию занимает 30 минут +0..2 часа в зависимости от проекта. Писать мок (простой) — это 0.5..1 минута на интерфейс.
2. Генерацию надо а)уметь и б)передавать знания о поддержке
3. Для генерации приходится обычно «засорять» исходники и интерфейсы коментариями/избыточным наследованием (чтобы тулза знала, на что генерить, а на что — нет)
Sign up to leave a comment.
sMock — Swift mocking framework для Unit-tests (спасибо gMock за идеи)