
Andrey
12.04.2017
23:17:49
Добавилось еще несколько условий

Aleh
12.04.2017
23:17:53
но и всякие уровня контракта без мока
а кто кроме inviqa использует термины specbdd и storybdd? я тож всем такой говорю, что юзаю огуречик и моку, мол сторибдд и спекбдд, а никто не понимает(
естественно в linkedin тож написал, красиво звучит

Google

Aleh
12.04.2017
23:20:38
в общем, я на 3ку дотянул на этом экзамене или на осень?

Andrey
12.04.2017
23:20:56
Я не оцениваю

Aleh
12.04.2017
23:21:05
все зря(

Andrey
12.04.2017
23:21:47
Мой опыт в том, что если использовать спеку и стори - многие моменты проще в поддержке

Aleh
12.04.2017
23:22:12
но они не покрывают полного спектра нужных в разработке вещей

Andrey
12.04.2017
23:22:37
Нет стопроцентной гарантии от тестов
Есть описание от бизнеса

Aleh
12.04.2017
23:22:59

Andrey
12.04.2017
23:23:00
И есть ограниченный бюджет

Aleh
12.04.2017
23:23:02
и мутационными
с теми же репозиториями выделение мока для работы с базой неоправданно сложная штука, проверка вызова бесполезная привязка к реализации, так что интеграционный тест работает здесь великолепна
и любая реализация вашего интерфейса, которая стоит на границе вашего приложения и внешнего мира тестится интеграционным тестом, в этом нет ничего плохого или страшного

Andrey
12.04.2017
23:24:17
А потом получается додо пицца и восемь лямов

Google

Aleh
12.04.2017
23:24:45
чес говоря не знаю что за додо пицца и как она связана с деньгами
если восемь лямов это про деньги

Andrey
12.04.2017
23:24:54
Погугли

Aleh
12.04.2017
23:25:04
ой, и интереса к этому нет)

Andrey
12.04.2017
23:25:07
Пацаны любили интеграционку

Aleh
12.04.2017
23:25:31
если они сделали тесты очень долгими, то ссзб

Andrey
12.04.2017
23:25:33
И реверснули платежей на восемь лямов за отгруженный товар

Aleh
12.04.2017
23:27:20
не надо так, в общем это к чему?
что покрывать все интеграционными тестами - плохо? Окей, в большинстве систем скорее всего. Что интеграционные тесты - плохо? Нет, уверен, что это глупость

Andrey
12.04.2017
23:29:49
Есть контракты
Можно добавить проверку, что внешняя система не изменила контракт
Тестировать внешнюю систему нет смысла, это тот самый провод который подает ток на вход

Aleh
12.04.2017
23:31:42
ты не тестируешь внешнюю систему, а тестируешь свое взаимодействие с ней

Andrey
12.04.2017
23:31:59
Важнее добавить реакцию на изменение контракта
Потому что интеграционка не спасет от смены контракта

Aleh
12.04.2017
23:32:48
чет непонятно

Andrey
12.04.2017
23:33:02
Ток все тот же, но уже американского стандарта 127 вольт
Провод будет передавать и такой ток
Только все остальные объекты системы не будут работать, или будут работать неправильно

Aleh
12.04.2017
23:34:32
опять лампочки(

Google

Aleh
12.04.2017
23:37:18
вот есть лампочка и есть патрон, в этой схеме есть смысл погонять патрон на работу в реальной сети на выдачу нужного моей лампочке напряжения
ну вообще тока короч

Andrey
12.04.2017
23:37:45
У патрона нет изменяемого поведения
Он работает по контракту
Есть ток - передаю

Aleh
12.04.2017
23:38:36
патрон здесь адаптер для сети, он связывает мою лампочку с внешним миром
он и есть та граница
которую я покрою тестом
если бы это была розетка
а за ней был большая медиа система
то опять же, я покрыл бы розетку интеграционным
а в медиа-системе отдельно все юнитами

Andrey
12.04.2017
23:39:39
То есть ты добавляешь в тесты поведение того, что неконтроллируешь?

Aleh
12.04.2017
23:40:08
не совсем правильная фраза
я добавлю тест, который проверяет мое взаимодействие с тем, что я не контроллирую
но естественно для чего у меня есть песочница)

Andrey
12.04.2017
23:41:04
И ты будешь развертывать это неконтроллируемое на тестовом стенде?

Aleh
12.04.2017
23:41:29
без него ж ничего работать не будет

Andrey
12.04.2017
23:41:45
Какой профит?

Aleh
12.04.2017
23:42:58
не вижу способа как я еще могу проверить, что код взаимодействия с внешним миром вообще работает)

Google

Andrey
12.04.2017
23:42:59
Есть контракт - вы предоставляете такое-то как есть, мы изолируем систему в проверках что когда система работает с объявленным контрактом, у нас такое-то поведение

Aleh
12.04.2017
23:43:08
я не могу выделить контракт внешнего мира
ну точнее, мне несильно важен контракт работы с внешним миром

Andrey
12.04.2017
23:43:24
Нет контракта - вот вся проблема

Aleh
12.04.2017
23:43:28
мне важен конкретный результат взаимодействия

Andrey
12.04.2017
23:43:56
Но при изменении система должна работать?

Aleh
12.04.2017
23:44:07
при изменении чего?

Andrey
12.04.2017
23:44:33
Или должна просто предупредить об ошибках и приостановить взаимодействие без потери данных
Внешний мир поменял твое представление
Ты лезешь в тесты и меняешь его там

Admin
ERROR: S client not available

Aleh
12.04.2017
23:45:17

Andrey
12.04.2017
23:45:50
Вместо того, чтобы просто остановить дальнейшее взаимодействие до согласования новых контрактов
Внешняя система меняется

Aleh
12.04.2017
23:46:09
окей

Andrey
12.04.2017
23:46:30
Зачем тебе держать копию этой системы у себя?

Aleh
12.04.2017
23:46:47
опять не понял(

Andrey
12.04.2017
23:47:08
Твоя система работает с внешней системой
Если внешняя система изменит протокол
Будет ли смысл продолжать работу

Google

Aleh
12.04.2017
23:47:34
внешняя система тут та, которую я ношу с собой(база, фс), не внешний апи, который удален

Andrey
12.04.2017
23:47:44
Или надо будет выяснить что изменилось?

Aleh
12.04.2017
23:48:03
и если при апдейте я прогнал эти тесты и они упали, я откатил апдейт

Andrey
12.04.2017
23:48:07
Был мускуль, стал постгре

Aleh
12.04.2017
23:48:11
да
ну точнее, тут будет другой адаптер вероятно
а если постгря апнулась

Andrey
12.04.2017
23:48:58
Это уже проблемы постгре
Она должна следить за обратной совместимостью
Не ты

Aleh
12.04.2017
23:49:22
ну мажорную версию апнули

Andrey
12.04.2017
23:49:33
Твоя система работает с контрактом

Aleh
12.04.2017
23:49:37
вот тут да, тест упал, надо смотреть почему

Andrey
12.04.2017
23:50:01
Этот контракт гласит версия эскуэль анси 92
Все остальное побоку

Aleh
12.04.2017
23:50:24

Andrey
12.04.2017
23:50:37
Это пример контракта

Aleh
12.04.2017
23:50:43
адаптер для постгри будет активно юзать jsonb и все такое)

Andrey
12.04.2017
23:51:02
Бля
Короче, я объяснил почему интеграция не нужна с третьей стороной, есть консумер-дривен контрактс

Aleh
12.04.2017
23:52:26
ну, как скажешь

Andrey
12.04.2017
23:52:33
Нарушила третья сторона - повод остановиться и пересмотреть, но не вписывать поведение третьей стороны в тесты
Пхпспек и бехат на пару прекрасно дополняют друг друга