Поблочное тестирование, подходящее для коротких программ

При использовании async следует использовать ключевое слово await с try / catch, а не с .then и catch

const DBStatus = async (data) => {
    try {
        const result = await sequelize.authenticate();
        data.status = true;
        console.log('Connection has been established successfully.');
        // if you want to resolve this promise with a value then use return
        return result
    } catch(err) {
        data.status=false;
        // if you want to reject the promise with a value then use throw
        throw err;
        console.error('Unable to connect to the database:', err);
    }
}
.
8
задан jjnguy 21 October 2008 в 04:44
поделиться

9 ответов

Определенно выгодный, поскольку запись тестов может помочь проверить дизайн Ваших функций (делает API, имеют смысл), и помогает, защитил Вас от ошибок в в будущем. Модульные тесты могут также действовать как контракт для Ваших функций, которые могут указать, как функции должны использоваться и что они ожидают.

С более короткими программами, которые являются четкими просто путем чтения кода, не может быть выгодно полностью протестировать его, если у Вас нет большого количества времени. Иначе я должен согласиться со своими коллегами здесь, что поблочное тестирование обладает множеством преимуществ и полезно для даже для маленьких проектов.

Предупреждение: следующие ссылки не могут быть применимыми, но следующее обсуждение является хорошим чтением.

Было некоторое обсуждение недавно в блогосфере относительно того, когда тестирование является соответствующей, специфически Разработкой через тестирование (TDD). Вы могли бы хотеть проверить некоторые статьи, такие как они три статьи Roy Osherove.

1
ответ дан 5 December 2019 в 07:37
поделиться

Сегодня это - маленький проект, завтра это - центральный элемент к Вашей корпоративной инфраструктуре. Запустите его право, получите 100%-е покрытие кода сразу же.

4
ответ дан 5 December 2019 в 07:37
поделиться

Да. Что-либо дольше, чем нулевые строки может быть протестированной единицей - обычно успешно.

7
ответ дан 5 December 2019 в 07:37
поделиться

Я посмотрел бы на вероятность для регрессий, не количество строк кода. Если Ваши программы будут жить долгое время и, вероятно, будут пересмотрены или иначе изменены, то модульный тест может иметь смысл. Если код будет одноразовым или никогда вероятно, не изменяться, то модульные тесты, вероятно, не будут стоить.

4
ответ дан 5 December 2019 в 07:37
поделиться

Модульные тесты служат нескольким целям; самое очевидное должно протестировать код, чтобы решить, что он делает то, что он, как предполагается, делает. Но один из другого, более полезных целей, является неявной документацией; если Вы явно модульный тест часть кода для определенного поведения, становится ясно, что то поведение ожидается, даже если неочевидный.

Рассмотрите скромный оператор сложения. Простой, правильно? Ну, каково ожидаемое поведение при добавлении двух целых чисел со знаком, оба из которых>, чем MAXINT / 2? Это - MAXINT, или действительно ли это - отрицательное число?

Документирование всего этого материала может быть громоздким, время от времени; чтобы не сказать, что это не должно быть сделано, но опыт показывает, что это часто не становится сделанным. Однако явный модульный тест, который тестирует на вышеупомянутый случай, являющийся отрицательным, удаляет все сомнение; а также служение допустимой цели для регрессии, что поведение не изменялось со временем.

3
ответ дан 5 December 2019 в 07:37
поделиться

полностью, Вы будете знать, что не повреждаете существующих функций при добавлении новых через несколько месяцев....

только один из многих плюс значение наличия ряда теста для части кода.

2
ответ дан 5 December 2019 в 07:37
поделиться

Если код логически является делимым в меньшие единицы, то модульные тесты являются соответствующими. Если код не может быть разумно разделен на меньшие компоненты, то это - единый блок, и я утверждал бы, что в этом случае автоматизировал поблочное тестирование и автоматизировал функциональное тестирование, будет неразличимо.

1
ответ дан 5 December 2019 в 07:37
поделиться

Я должен отступить с большинством ответов. Donald Knuth однажды сказал в интервью, что люди склонны тестировать большинство вещей, когда они не уверены в том, что они делают или работают в not-so-comfortable домене.

Имея это в виду, я говорю, что помимо документирования как сказанный mcwafflestixlivejournalcom, модульные тесты только помогают Вам, если Вы не на 100% уверены в своем коде. Беря пример оператора сложения для двух ints, я не забочусь о переполнении, если я добавляю возрасты двух людей.

OTOH, модульные тесты заставляют Вас факторизовать логику ядра своих программ (который заставляет Вас сделать более модульные вещи), и помогает Вам протестировать быстрее, чем Вы могли когда-либо делать, если бы Вы тестировали 'вручную'. Не все мы - Donald Knuth, в конце концов.

Примите во внимание, что мой ответ для маленькой функциональности, как исходный плакат, который спрашивают

0
ответ дан 5 December 2019 в 07:37
поделиться

Единственное время, которое необходимо записать модульным тестам, - когда Вы заботитесь, что вывод Вашей программы корректен, и продолжит быть корректным в будущем.

Если правильность Вашего кода не важна, то это не необходимо для модульного теста.

0
ответ дан 5 December 2019 в 07:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: