Я не работаю с NUnit напрямую, но хочу позаимствовать некоторые его идеи в другом контексте.
Одной из особенно элегантных идей является механизм ограничений, который позволяет вам написать модульный тест в форме:
Assert.That(aValue, Is.GreaterThan(2.0) & Is.LessThan(5.0));
Вы также можете проверить, находится ли значение в некотором диапазоне:
Assert.That(aValue, Is.InRange(2.0, 5.0));
Однако, похоже, нет способа проверить, что aValue
является одним из набора допустимых значений:
Assert.That(aValue, Is.OneOf(aCollection));
Разве это не так часто встречается в модульном тесте? Указывает ли это на какую-то проблему с моими модульными тестами? Все просто вводят aValue в какую-то фиктивную коллекцию из одного элемента, а затем используют Is.SubsetOf
?