А как вам такой юнит тест
Mar. 10th, 2016 12:21 pmЕсть значит фукнкция func1(arg) которая состоит из одной строчки, а именно, вызов функции func2(arg, true), то есть, просто обертка добавляющая еще один аргумент
И вот, для такой функции в нашем проекте ОБЯЗАТЕЛЬНО должен быть юнит тест, который заключается в том, что ставится джасмин спай на func2, потом вызывается func1(42), и потом критерий успешности юнит теста в том, что спай репортует, что func2 была вызвана с аргументами [42, true]
Считается, что такие юнит тесты очень помогают нашему проекту сохранять качество кода. Cчитается, что сценарий "помощи" такого юнит теста такой: Некий картонный дурилка, значит, решит порефакторить код func1. Дурилка скажет себе - Ха, а давайте вызывать func2 не с аргументами [arg, true], а лучше вызывать с аргументами [arg, false]
Только дурилка такой чейндж закоммитил, а ему билд сервер по рукам - херакс! суко, ты сломал юнит тест!
Дурилка сразу такой - ой, точно! И сразу все откатит назад, и все будут довольны
ВАЖНОЕ ДОПОЛЕНИЕ - речь не идет про иллюстрации идеи юнит-тестирвования. Речь про абсолютно реальный пример без преувеличения. Вот именно такой уан-лайнер и такой тест, только имена другие. При этом, конечно, кладется с прибором на тот факт, что дурилка, обычно, если такое делает, то еще меняет и юнит тест, и в результате ошибка совершенно не видна. Но это уже всем пофигу. Главное, что у нас 5000 юнит тестов которые бегут 10 минут, если всех их запустить, и мы офигительно удолетворяем современным способам контроля качества.
И вот, для такой функции в нашем проекте ОБЯЗАТЕЛЬНО должен быть юнит тест, который заключается в том, что ставится джасмин спай на func2, потом вызывается func1(42), и потом критерий успешности юнит теста в том, что спай репортует, что func2 была вызвана с аргументами [42, true]
Считается, что такие юнит тесты очень помогают нашему проекту сохранять качество кода. Cчитается, что сценарий "помощи" такого юнит теста такой: Некий картонный дурилка, значит, решит порефакторить код func1. Дурилка скажет себе - Ха, а давайте вызывать func2 не с аргументами [arg, true], а лучше вызывать с аргументами [arg, false]
Только дурилка такой чейндж закоммитил, а ему билд сервер по рукам - херакс! суко, ты сломал юнит тест!
Дурилка сразу такой - ой, точно! И сразу все откатит назад, и все будут довольны
ВАЖНОЕ ДОПОЛЕНИЕ - речь не идет про иллюстрации идеи юнит-тестирвования. Речь про абсолютно реальный пример без преувеличения. Вот именно такой уан-лайнер и такой тест, только имена другие. При этом, конечно, кладется с прибором на тот факт, что дурилка, обычно, если такое делает, то еще меняет и юнит тест, и в результате ошибка совершенно не видна. Но это уже всем пофигу. Главное, что у нас 5000 юнит тестов которые бегут 10 минут, если всех их запустить, и мы офигительно удолетворяем современным способам контроля качества.