次のようなメソッドがあるとします。
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