Pull to refresh
36
0
Денис Орлов @denis_orlov

Пользователь

Send message

дополню, функцией random_string, которая тут используется

https://gist.github.com/robcowie/e6438369c205c75103ba5e94e09a2f70

про космакс есть интересный пост в сети - кто разрушает российскую кино-науку (это не реклама! ),
в целом, на лицо прихватизация канадского хлама, с награждением причастных

да, и при внесении изменений в большой проект, очень сильно обнадеживает, если за каждый юнитом кода следит маленький, узкопрофильный, но зоркий и строгий солдатик :)
Вот только никакой ошибки там не было.

ошибка все-таки была, точнее недочет, и не по бизнесу, а по коду тестов.
проверять xml как строку, согласитесь спорное решение. оно вам отомстило :)
иногда и дизлайк — залог правоты :)
не вижу и близко смысла сравнивать тяжелые, долгие и сквозные интеграционные тесты, где на вход даешь A и на выходе проверяешь… G
с быстрыми, легкими и детальными юнит тестами, позволяющими точечно покрыть всю цепочку: A, B, C, D, E, F, G
Как тестирование модуля может зафиксировать ожидаемое поведение системы?

Проблемы проявятся, если сервис будет возвращать json, а не string. Любое добавление поля приведет к тому, что нужно будет переписать каждый подобный тест.


это не проблема, а суть фиксации поведения. Некогда бизнес потребовал string, это реализовали и зафиксировали тестом. Теперь если теперь некий разработчик изменит это поведение — тест упадет, сигнализируя о несовместимости с прежними требованиями.
Если это ошибочно — уф, спасибо тебе, тест!
Если сознательно — меняется тест, фиксируются актуальные требования = ожидаемое поведение системы.
ок. спорный вопрос.
при детальном покрытии быстрыми юнит тестами — долгие и тяжелые интеграционные могут вообще не понадобиться.
юниты дают несравнимо больше профита, и накапливают ценность в перспективе.
спасибо.
я рассматриваю покрытие тестом не как тестирование, а как неотъемлемую часть надежной разработки, написал метод — покрыл, дописал — в тест добавил.
а интеграционные тесты — долгие и тяжелые,
а главное — они сквозные, не способные детально фиксировать функционал.
поднимать в юнит тесте Spring контекст для проверки конкатенации в контроллере это чересчур.

вы про WebMvcTest? но это уже стандарт гонять тесты контроллера через MockMvc, вы поступаете иначе?
условие Mockito.atLeastOnce() допускает многократный вызов сервиса

согласен, нужно указать точнее
А в середине те же самые 2+2 с кровавым Enterprise

не совсем, не 2+2, а тогда уж x + 2, легко расширяемый до ax2+bx+c… и далее…
пример элементарный, но принцип очень важный — как покрывать тестами функционал содержащий зависимости и интеграции — применим к любой сложности.
в том то и дело, как интеграционными тестами возможно покрывать собственную логику? это же совершенно разные уровни.
упс, тут был дубликат поста
ну традиционно и логично тесты пишутся на методы, это и есть та функциональная единица,
если выделить и обособить вызов зависимости и собственный код, то предельно ясно что мокировать, а что жестко фиксировать в тестах.
В статье скатились в тоже самое, только тестирование спринга добавилось.

не совсем, в статье заложен принцип написания тестов для взаимоинтегрируемых систем

поясните пожалуйста, что вы называете IT-тестами?
Техническое собеседование — процесс доминирования человека со списком ответов над человеком без списка вопросов. ©
Теперь мы готовы загрузить фикстуры в базу данных
$ php app/console doctrine:fixtures:load


в этот момент посыпались ошибки типа
SQLSTATE[42601]: Syntax error: 7 ОШИБКА: ошибка синтаксиса примерное положение: "user"

оказало проблема в поле «user», это имя зарезервировано в postgres, пришлось сменить на «uuser» :)
PostgreSQL 9.3
при смене имени. следует учесть это и в шаблонах
{# src/Blogger/BlogBundle/Resources/views/Comment/index.html.twig #}
{# ... #}

{{ comment.uuser }} commented {{ comment.created|date('l, F j, Y') }}


https://github.com/mk-j/PHP_XLSXWriter
не настолько функциональная, но именно при генерации больших файлов — работает отлично.
так и пишут сами:
Never run out of memory with PHPExcel again.
PHPExcel жрет память десятками мегабайт даже с настройками кэширования в файл!
Эта библиотека — настоящий кошмар разработчика.
Рекомендую сразу отказаться от нее.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity