Assert.AreEqual(ожидаемый, фактический) для нескольких ожидаемых значений

Как я могу утверждать, что переменная удовлетворяет любому из двух значений в среде модульного тестирования Visual Studio?

Я видел, как другие платформы тестирования делали это так:

Assert.That(result.ViewName, Is.EqualTo("HomePage") | Is.Empty);

У меня нет опыта работы со средой модульного тестирования Visual Studio.

1 ответ

Решение

Прежде всего, я думаю, что образец строки кода, который вы набрали, содержит ошибку, если вы не собираетесь выполнять побитовое ИЛИ.

Assert.That(result.ViewName, Is.EqualTo("HomePage") || Is.Empty);

Во-вторых, я подозреваю, что здесь вводит в заблуждение тест, поскольку модульное тестирование должно проверять один и только один конкретный сценарий. Таким образом, если вы присвоили, например, одно значение свойству, вы ожидаете, что это самое значение будет возвращено его получателем.

В-третьих, вот как я могу это сделать, учитывая, что я могу пропустить вашу точку зрения, и вам обязательно нужно проверить любой из этих результатов.

Assert.IsTrue(string.Equals(result.ViewName, "HomePage") || string.Equals(result.ViewName, string.Empty));

С другой стороны, я никогда не тестировал сценарий, в котором я ожидал двух разных результатов от одного и того же модульного теста. Assert.That может быть и хорошо.

Другие вопросы по тегам