Кодовые контракты были введены в .NET 4.0, и они предоставляют независимый от языка метод выражения предположений о кодировании в программах.
Они в основном позволяют проверять предварительные условия, постусловия и другие функции и могут значительно улучшить процесс тестирования и конечное качество написанного кода.
От Microsoft:
Проверка времени выполнения. Наш бинарный переписчик модифицирует программу, вводя контракты, которые проверяются как часть выполнения программы. Переписанные программы улучшают тестируемость: каждый контракт выступает в роли оракула, давая тесту запуск индикации прохождения / неудачи. Инструменты автоматического тестирования, такие как Pex, используют контракты для создания более значимых модульных тестов, отфильтровывая бессмысленные аргументы теста, которые не удовлетворяют предварительным условиям.
Статическая проверка. Наш статический контролер может решить, есть ли какие-либо нарушения контракта, даже не запуская программу! Он проверяет неявные контракты, такие как нулевые разыменования и границы массивов, а также явные контракты.
Создание документации. Наш генератор документации дополняет существующие XML-файлы документов информацией о контрактах. Также есть новые таблицы стилей, которые можно использовать с Sandcastle, чтобы сгенерированные страницы документации имели разделы контракта.
Узнать больше: