Есть ли что-то не так с проверкой такого количества вещей в этом модульном тесте?:
ActualModel = ActualResult.AssertViewRendered() // check 1
.ForView("Index") // check 2
.WithViewData<List<Page>>(); // check 3
CollectionAssert.AreEqual(Expected, ActualModel); // check 4
Основные цели этого теста состоят в том, чтобы проверить, что правильное представление возвращается (проверьте 2), и это содержит правильные данные (проверьте 4).
Я получил бы что-нибудь путем разделения этого на несколько тестов? Я - все о том, чтобы делать правильно вещи, но я не собираюсь разделять вещи, если оно не имеет практического значения.
Я довольно плохо знаком с поблочным тестированием, так быть нежным.
Как отмечали другие, лучше придерживаться одного утверждения в каждом тесте, чтобы избежать потери информации - если первое утверждение не сработает, вы этого не сделаете. Не знаю, потерпят ли неудачу и более поздние. Вы должны решить проблему с меньшим количеством информации - что может (возможно, будет) быть сложнее.
Очень хороший справочник Роя Ошерова Искусство модульного тестирования - если вы хотите начать прямо с модульного тестирования, вы можете сделать намного хуже, чем начать здесь.
Пока каждое утверждение имеет уникальное и идентифицирующее сообщение об ошибке, вы должны быть в порядке и избегать любых проблем с рулеткой утверждений, потому что будет несложно определить, какой тест не прошел. Используй здравый смысл.
Лучше всего придерживаться только одного утверждения в каждом тесте, чтобы избежать Assertion Roulette.
Если вам нужно настроить один и тот же сценарий для проверки нескольких условий, основанных на одинаковых предпосылках, лучше извлечь код настройки в общий вспомогательный метод, а затем написать несколько тестов, вызывающих этот вспомогательный метод.
Это гарантирует, что каждый тест будет тестировать только одну вещь.
Как всегда, из этого правила есть исключения, но поскольку вы новичок в модульном тестировании, я бы рекомендовал вам придерживаться правила одно утверждение на модульный тест, пока вы не научитесь понимать, когда можно отклоняться от него.