我在单元测试中遇到了一个我无法解决的问题。我认为最简洁的说法是:
我希望能够使用 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));
}
在被难住并发布此问题之前,我查看的问题是:为模板动态创建泛型类型并使用包含类型的变量创建 Generic<T> 类型实例
这样的事情可能吗?
编辑:
我看到在 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));
}
我仍然想知道是否有办法在我希望类型位于通用方法中时实现它。