Рассмотрим этот код:
const string user8 = "user8";
const string user9 = "user9";
string[] users = { "user1", "user2", "user3", "user4", user8 };
Я хочу проверить, что users
не содержит ни user8, ни user9. я использовал
Assert.That(users, Is.Not.SupersetOf(new[] {user8, user9 }));
К сожалению, он проходит тест (чего не ожидается). я могу использовать
Assert.That(users, Does.Not.Contains(user8).And.Not.Contains(user9));
Но это будет проблематично, если я собираюсь протестировать коллекцию более чем на двух участниках. Есть ли лучший синтаксис? Я использую NUnit 3.4.
Примечание. Целью является не только результат теста, но и должно быть правильное утверждение, чтобы всякий раз, когда тест терпит неудачу, мы могли быстрее определить это по сообщению об ошибке. Это пример сообщения об ошибке из последнего примера (с использованием Does.Not.Contains
)
«Ожидалось: не коллекция, содержащая «user8» и не содержащая «user9». Но было: ‹ «user1», «user2», «user3», «user4», «user8» >»
CollectionAssert
? - person hendryanw   schedule 18.01.2017CollectionAssert
есть несколько методов. Можете ли вы сказать более конкретно? К вашему сведению, я предпочитаю использовать ограничение. Но если это единственное решение, то проблем быть не должно. - person iroel   schedule 18.01.2017