@symfony_php

Страница 178 из 1418
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
Нет стопроцентной гарантии от тестов
никто и не просил, иначе начали бы property тестами обмазываться

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

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

Все остальное побоку

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
Нарушила третья сторона - повод остановиться и пересмотреть, но не вписывать поведение третьей стороны в тесты

Пхпспек и бехат на пару прекрасно дополняют друг друга

Страница 178 из 1418