Модным словом здесь (с большим количеством литературы) является Observable Effect.Обычно это либо изменение состояния, либо возвращаемое значение, либо исключение, которое выдается (или нет).
Если, например, вы хотите проверить, что не выдается исключение (наблюдаемый эффект)), тогда вам не нужно утверждать ни о каком выводе:
public void ShouldNotThrowException()
{
var objectUnderTest = new YourClass();
objectUnderTest.CheckModelDetail(null);
}
Попробуйте удалить ваше предложение if (executeTemodel == null)
, и вы увидите, что ваш тест не пройден где-то в checkModel
(при условии, что вы обращаетесь к членам вашей модели втам).Любое необработанное исключение делает ваш тест неудачным.
Вы можете использовать Должно Should.NotThrow , чтобы сделать это еще более явным:
public void ShouldNotThrowException()
{
var objectUnderTest = new YourClass();
Should.NotThrow(() => objectUnderTest.CheckModelDetail(null));
}
Это не только проверяет ваш код, но и делает его очень понятным для любого, кто читает ваш тестовый код, что вы ожидаете.
Если вы хотите утверждать, что checkModel()
не вызывается, вы должны переместить этот метод вдругой класс и работа с макетом (см. TestDouble Мартина Фаулера для хорошего обзора).Но я не уверен, волнует ли вас это как потребитель из CheckModelDetail
.Вы должны проверить , что вы хотите, чтобы произошло (то есть, не было выброшено исключение, модель принята как действительная, модель считается недействительной, ...), в отличие от , как это достигается (то есть checkModel
не вызывается) в общем, так что вы можете рефакторинг реализации, если интерфейс не меняется.