Контракты кода .NET 4.0 - Как они повлияют на модульное тестирование?

Например этостатья знакомит их.

В чем выгода?

Статический анализ кажется классным, но в то же время он не позволил бы передать значение null в качестве параметра в модульном тесте. (если вы следовали примеру в статье, которая есть)

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

Обновить

Поиграв с Code Contracts I 'Я немного разочарован. Например, на основании кода в принятом ответе:

public double CalculateTotal(Order order)
{
    Contract.Requires(order != null);
    Contract.Ensures(Contract.Result() >= 0);
    return 2.0;
}

Для модульного тестирования выеще должны написать тесты, чтобы гарантировать, что ноль не может быть передан, а результат больше или равен нулю, если контрактыбизнес логика, Другими словами, если бы я должен был удалить первый контракт, никакие тесты не прервались бы, если бы у меня специально не было теста для этой функции. Это основано на том, что не используется статический анализ, встроенный в лучшие (окончательные и т. Д.) Выпуски Visual Studio.

По сути, все они сводятся к альтернативному способу написания традиционных операторов if. Мой опыт на самом деле с помощьюTDD, с кодовыми контрактами показывает, почему и как я пошел на это.

Ответы на вопрос(4)

Ваш ответ на вопрос