Size: a a a

Software Design/Architecture/Zen

2021 June 11

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
Ну вотвызыал ты аддфайл, получил файладдед. И все что ты проверил?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
не обязательно, но часто да
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Так мы же можем понять, что поделили неправильно и нужно переделить. Это мы контракты поменяем?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
в целом вопрос логики. Например если мы реально говорим о агрегате - он отвечает за соблюдение инвариантов. То есть то что я буду проверять - это вызвал методы в определенной последовательности и убедился что если я бронирую два раза получаю исключение
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
А если там хитровыебанно стецт меняется от типа файла или ещё чего?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
главное не думай что ты "проверяешь методы") и жизнь станет интереснее
источник

SP

Sergey Protko in Software Design/Architecture/Zen
если же у агрегата контракт вида "ты попросил файл добавить я добавил" - я такое даже не буду тестить особо. Какой мне смысл тестить что-то где нет if-ов.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну а если "агрегат" внутри готовит данные для персистенса (такое бывает да) то опять же что-то не так пошло
источник

SP

Sergey Protko in Software Design/Architecture/Zen
один приемочный тест кейс полностью закровет все это. я не к тому что тестов вообще не будет. На всякий случай
источник

SP

Sergey Protko in Software Design/Architecture/Zen
короч смысл в том что либо у тебя изменения стэйта влияет на последующие операции либо там у тебя чет странное
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
ну давай контракт такой. Можно добавлять файлы, максимум 5 image/jpeg и максимум 3 image/png
источник

SP

Sergey Protko in Software Design/Architecture/Zen
потому и говорю что на абстрактных конях обсуждать такое сложн
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
сложно придумать без контеста но бывало такое, что заставляло подумать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну берешь и пишешь этот тест. "добавляю 5 раз jpg - нет исключений. добавляю 6 раз - есть исключение. добавляю 4 раза png - есть исключения... потом миксуешь если есть такие кейсы".
источник

SP

Sergey Protko in Software Design/Architecture/Zen
у тебя ж нет цели проверять что ты "запомнил имя файла в пропертю". Это у тебя приемочный тест закроет
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
например пришло требование при 3-ем файле image/jpeg надо послать письмо. И у тебя получается, что ты дергаешь 6 раз метод добавления, а там еще одно поведение появилось. Тест стал более хрупким, т.к. может упасть по другим причинам (задейстовано другое поведение)
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну вопервых это твои проблемы, я найду способ как изолировать тест кейсы что бы "другие фичи" не добавляли мне причин для фэйла тестов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
опять же "отправка email-а на 3-ий файл" не выглядит чем-то что должно быть в агрегате
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
так и как)
источник

DT

Dmitriy Tkachenko in Software Design/Architecture/Zen
ну это условно, просто другое поведение, ты как иинимум должен еще один ивент кинуть
источник