gpt4 book ai didi

c# - 使用 NUnit 测试任何类型的异常

转载 作者:IT王子 更新时间:2023-10-29 04:41:28 24 4
gpt4 key购买 nike

我有一个创建文件的类。

我现在正在进行集成测试以确保该类没问题。

我正在传递无效的目录和文件名以确保抛出异常。

在我的测试中,我正在使用:

[Test]
public void CreateFile_InvalidFileName_ThrowsException()
{
//Arrange
var logger = SetupLogger("?\\");

//Act

//Assert
Assert.Throws<Exception>(()=> logger.CreateFile());
}

但是在这种情况下,测试失败,因为抛出了 ArgumentException。我认为只添加 Exception 它就会通过。

有没有办法只使用 Exception 就可以通过?

最佳答案

Assert.Throws<> 的帮助声明它“验证委托(delegate)在调用时抛出特定类型的异常”

试试 Assert.That版本,因为它会捕获任何 Exception :

private class Thrower
{
public void ThrowAE() { throw new ArgumentException(); }
}

[Test]
public void ThrowETest()
{
var t = new Thrower();
Assert.That(() => t.ThrowAE(), Throws.Exception);
}

关于c# - 使用 NUnit 测试任何类型的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9888469/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com