単体テストで解決できなかった問題があります。最も簡潔に言うと、次のようになると思います。
Theory InlineAutoMoqData のパラメーターで提供される Type を、Shouldly の Should.Throw メソッドの T として使用できるようにしたいと考えています。これにより、メソッドに複数の例外が関連付けられている場合に、さまざまな例外タイプを期待して、さまざまな行テスト (このフレームワークではインライン理論だと思います) を作成できます。
可能かどうかはわかりませんが、単体テスト自体の例を次に示します。
[Theory]
[InlineAutoMoqData("bork", typeof(FileTypeNotRecognizedException))]
public void Build_ReturnsSpecificException_FileNamePassedIn(string fileName, Type expected, ProcessFactory sut)
{
Should.Throw<expected>(() => sut.Build(fileName));
}
このようなことは可能ですか?
編集:
xUnit では、Assert.Throws(Type, Delegate) メソッドを使用してこれを実現できることがわかりました。
[Theory]
[InlineAutoMoqData("bork", typeof(FileTypeNotRecognizedException))]
public void Build_ReturnsSpecificException_FileNamePassedIn(string fileName, Type expected, ProcessFactory sut)
{
Assert.Throws(expected, () => sut.Build(fileName));
}
タイプをジェネリックメソッドにしたいときはいつでもそれを達成する方法があるかどうかを知りたいです。