ユニットテスティングで解決できなかった問題があります。xUnit/Shouldly/AutoMoq/Autofixtureでは、テスト自体に<T>として使用できるInlineAutoMoqDataを使用してTypeを渡すことはできますか?
The InlineAutoMoqDataのパラメータで提供されるTypeをT Shouldly's Should.Throwメソッドとして使用できるようにしたいと考えています。これにより、メソッドに関連する複数の例外が存在する場合、さまざまな行テスト(このフレームワークのインライン理論)を作成してさまざまな例外タイプを予想できます。
可能かどうかは確信していますが、単体テストそのものの例があります。
[Theory]
[InlineAutoMoqData("bork", typeof(FileTypeNotRecognizedException))]
public void Build_ReturnsSpecificException_FileNamePassedIn(string fileName, Type expected, ProcessFactory sut)
{
Should.Throw<expected>(() => sut.Build(fileName));
}
困惑し、これを掲示取得する前に、私は、見ての質問があった:Dynamically Create a generic type for templateとCreating a Generic<T> type instance with a variable containing the Type
は、この可能性のようなものですか?
編集:
私はxUnitの中で、私はAssert.Throws(タイプ、委任)メソッドを介してこれを実現できることがわかります。
[Theory]
[InlineAutoMoqData("bork", typeof(FileTypeNotRecognizedException))]
public void Build_ReturnsSpecificException_FileNamePassedIn(string fileName, Type expected, ProcessFactory sut)
{
Assert.Throws(expected,() => sut.Build(fileName));
}
タイプを汎用メソッドにしたいときにはいつでも、それを達成する方法があるかどうかを知りたいと思います。
基本クラスのテストに '[Theory]'と '' [InlineAutoMoqData] '属性を入れてみませんか? http://blog.ploeh.dk/2011/05/09/GenericunittestingwithxUnit.netその後、これらの上書きはすべて必要ありません。 –
インライン化されたデータ(fileName)が例外に依存しない場合は、そうです。それは事実ではないようです。 fileNameが変更されると例外が変わるようですが、それ以外の場合、例外をインライン化するポイントは何ですか? –