編集:同様の質問hereがありますが、解決策のみが示唆されています。この質問は依然として重複している可能性があります。c#Xunit、Assert.Throwsは予期しない例外が発生した場合に失敗します
EDIT 2:それは、この問題が判明、それは以前に起こっていなかったものの、デバッグ時のだけ出来事です。 (TCheck)null
をnull as TCheck
に置き換えた後、テストは成功しましたが、デバッグ時に例外がスローされます。
ORIGINAL POST: 私はこの
internal void EqualityAssert<TCheck, TEquatable>(TEquatable item, ...)
where TCheck : class, IEquatable<TEquatable>, TEquatable
{
// Various equality assertions that are passing
// ...
// A == null
Assert.Throws<NullReferenceException>(
() => ((IEquatable<TEquatable>)item).Equals((TCheck)null));
}
この方法は、種々の単体テストによって呼び出され、これらのテストの各々は、「未処理とNullReferenceExceptionため失敗しているように見えるユニットテストにおける方法を有しますそれが期待されるところに正確に遭遇した。
Assert.Throwsは私にとって以前は適切に機能していましたが、何が変わったのか分かりませんでした。
が原因 '(TCheck)null'なのでのものであってもよいです。これを 'TCheck'として' null 'に変更してみてください。私はちょうどこれを行ったし、それはそうは思わないが、あなたのシナリオで何が起こるかを見てうれしい。 –
テストのデバッグを試しましたか? – rclocher3
@StephenRossそれは問題を解決しませんでしたが、Equals実装では例外が発生しました。 –