У меня есть методы с более чем одним параметром , которые защищены от неправильного ввода, генерируя ArgumentNullExceptions и ArgumentExceptions всякий раз, когда любой параметр имеет значение null.
Итак, есть два очевидных способа проверить это:
- Один тест на параметр с использованием атрибута [ExpectedException]
- Один тест для всех параметров с использованием нескольких блоков try {} catch
Объект try catch будет выглядеть так:
try
{
controller.Foo(null, new SecondParameter());
Assert.Fail("ArgumentNullException wasn't thrown");
} catch (ArgumentNullException)
{}
С одной маленькой проблемой. Если тест пройден, Assert.Fail никогда не вызывается и поэтому будет выделен как не покрытый тестовым кодом (по NCover).
Я знаю, что на самом деле это не проблема, так как это бизнес-код, который я хочу охватить 100%, а не тестовый код. Тем не менее, мне любопытно, есть ли способ сжимать несколько вызовов, генерирующих исключения, в один тестовый случай без мертвых LoC?