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
может быть и хорошо.