C # - Модульный тест, макет? - PullRequest
       4

C # - Модульный тест, макет?

10 голосов
/ 13 сентября 2010

Должен ли использоваться встроенный генератор модульных тестов (VS) для целевых классов или я должен сам научиться писать модульные тесты?И что это за "насмешливая" вещь?Я слышу это снова и снова, но никто не хочет дать хорошее объяснение.

Заранее спасибо.

1 Ответ

18 голосов
/ 13 сентября 2010

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

Модульный тест: тестирование одного блока кода, очень маленький атомарный тест.

Интеграционный тест: тестирование несколькихЕдиницы кода, объединенные вместе, чтобы пройти через различные уровни и убедиться, что они используют друг друга правильно.Это должно быть сделано после того, как модульные тесты подтвердят, что отдельные блоки работают независимо.Многие ошибочно называют их модульными тестами.

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

Вот краткий старт для MOQ, который представляет собой фреймворк: https://github.com/Moq/moq4/wiki/Quickstart

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

Цель насмешки - атомарность втесты.Он позволяет вам тестировать только тот фрагмент кода, который вы хотите, не затрагивая его тесты из-за ошибок в зависимых фрагментах кода.Кроме того, mocking дает вам возможность сфабриковать множество сценариев для тестирования крайних вариантов каждого фрагмента кода.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...