Size: a a a

2019 December 31

SP

Sergey Protko in PHP
классицист ты или мокист - много моков - много методов ты трекаешь - больше твои тесты начинают дублировать реализацию
источник

BT

Bohdan Turchyk in PHP
описать результат вызова метода в моке - более приемлемый вариант
источник

SP

Sergey Protko in PHP
если мы говорим о изолированных тестах ты будешь подменять ВСЕ зависимости которые не являются данными (подмена вещей типа DateTime редко окупается)
источник

BT

Bohdan Turchyk in PHP
в гошечке вообще сейчас пишу сервисы-кложуры с описанным типом
источник

SP

Sergey Protko in PHP
проблема обычно в том что когда люди начинают втупую подменять все зависимости, получается хуита дублирующая реализация
источник

SP

Sergey Protko in PHP
потому что у большинства связанность кода высокая
источник

BT

Bohdan Turchyk in PHP
внешняя принимает зависимости и возвращает описанный тип, внутренняя делает дела
источник

SP

Sergey Protko in PHP
и с такими подходами "моккинг" не работает
источник

SP

Sergey Protko in PHP
"моккисты" это хорошо когда понимают что такое связанность, как ее уменьшать, когда фапают на концепты типа whole value и т.д.
источник

SP

Sergey Protko in PHP
в других ситуациях это уебки
источник

EY

Eugene Yurkevich in PHP
Sergey Protko
классицист ты или мокист - много моков - много методов ты трекаешь - больше твои тесты начинают дублировать реализацию
Да, но при этом я уверен что последовательность вызовов в реализации именно такая как я ожидаю
источник

SP

Sergey Protko in PHP
Eugene Yurkevich
Да, но при этом я уверен что последовательность вызовов в реализации именно такая как я ожидаю
только тестить ты должен не последовательность вызовов.
источник

k

knopkod4v in PHP
Sergey Protko
проблема обычно в том что когда люди начинают втупую подменять все зависимости, получается хуита дублирующая реализация
ну не знаю, мне кажется само разделение это не убивает 🤔 Как раз наоброт. Ты можешь выделить мокизм и сказать, что его не должно быть много из-за дублирования реализации и ещё чего-нибудь
источник

MM

Maksim Masiukevich in PHP
эм, а нахер аще знать про последовательность вызово, если ценность имеет только результат?
источник

EY

Eugene Yurkevich in PHP
и передаваемые аргументы и т.д.
источник

SP

Sergey Protko in PHP
Eugene Yurkevich
Да, но при этом я уверен что последовательность вызовов в реализации именно такая как я ожидаю
грубо говоря важно только то, что на выходе. Поведение
источник

BT

Bohdan Turchyk in PHP
Sergey Protko
грубо говоря важно только то, что на выходе. Поведение
привет чистые функции
источник

EY

Eugene Yurkevich in PHP
на выходе может быть void
источник

DK

Dmitriy Kuts in PHP
Sergey Protko
1. запрет расширения через наследование, если ты этого не предполагаешь на этапе проектирования класса
2. final вешается там где есть интерфейс либо не подразумевается что это что-то надо мокать (например ты не будешь мокать DateTime класс и расширять можешь не давать по дефолту).
На счет 2го. Раньше тоже так писал.
Но после того как на работе заметил что, некоторые люди экстендят все подрят. Теперь пишу final там где наследование сделает еще хуже поддержку.
источник

SP

Sergey Protko in PHP
Eugene Yurkevich
на выходе может быть void
в этом случае ты проверяешь не порядок вызовов в любом случае а аргументы
источник