Рассмотрим этот код:коллекция Тест не содержит несколько членов
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'? – Hendry
'Assert.That (new [] {user8Name, user9Name}, Is.Not.SubSetOf (пользователи));' – Nkosi
@Hendry существует несколько методов в 'CollectionAssert'. Вы можете уточнить? FYI, я предпочитаю использовать [ограничение] (https://github.com/nunit/docs/wiki/Constraints). Но это единственное решение, тогда это не должно быть проблемой. – iroel