Скажем, у нас есть метод, который выглядит следующим образом:
public IEnumerable<Dog> GrowAll(this IEnumerable<Puppy> puppies)
{
if(subjects == null)
throw new ArgumentNullException("subjects");
foreach(var puppy in puppies)
yield return puppy.Grow();
}
Если я проверю это следующим образом:
Puppy[] puppies = null;
Assert.Throws<ArgumentNullException>(() => puppies.GrowAll());
Тест не пройдёт, сказав, что он
Ожидаемое: <System.ArgumentNullException>
Но было: null
Я могу это исправить, изменив тест на
Puppy[] puppies = null;
Assert.Throws<ArgumentNullException>(() => puppies.GrowAll().ToArray());
Это так, как вы обычно это делаете? Или есть лучший способ написать тест? Или, может быть, лучший способ написать сам метод?
Пытался сделать то же самое с помощью встроенного метода Select
, и он не удался даже без ToArray
или чего-то подобного, так что, очевидно, что-то можно с этим поделать ... Я просто не знаете что: p