Один из коллег в моей команде говорит, что некоторые методы должны иметь как предварительные условия & постусловий. Но дело касается покрытия кода, эти условия не вызывались (не тестировались) до тех пор, пока не была реализована недействительная реализация (просто использовалась в модульном тесте). Давайте возьмем пример ниже.Постусловия и TDD
public interface ICalculator
{
int Calculate(int x, int y);
}
public int GetSummary(int x, int y)
{
// preconditions
var result = calculator.Calculate(x, y);
// postconditions
if (result < 0)
{
**throw new Exception("...");**
}
return result;
}
Два варианта для нас:
1/Удалить тест реализации + Постусловия
2/Keep оба тестовых реализаций + Постусловия
Можете ли вы дать несколько советов, пожалуйста?
Вы не имели в виду «Всегда избегайте догмы». ? ;-) –
Я полагаю, что такие качества, как догма ..... d'oh! – duffymo
Обнаружил, что в наших тестах возникла проблема, это вопрос насмешливой ссылочной службы (в этом примере - ICalculator). Также его можно издеваться, чтобы возвращать плохие результаты, чтобы нарушить постусловия, и удалил «недействительную реализацию, реализованную (только что использовавшуюся в модульном тесте)». – fred