gpt4 book ai didi

c# - 检查单元测试中是否抛出参数

转载 作者:行者123 更新时间:2023-11-30 13:13:31 27 4
gpt4 key购买 nike

我正在为一个应用程序进行单元测试,该应用程序具有一个将三个值作为参数的构造函数。数字应为 0 或更高,现在我正在为构造函数编写单元测试,如果不是这种情况,则会抛出异常。

我想不通的是我如何在“断言”之后写什么来确定这一点,以便在将非法数字传递给构造函数时测试通过。提前致谢。

编辑:我正在使用 MSTest 框架

   public void uniqueSidesTest2()
{
try {
Triangle_Accessor target = new Triangle_Accessor(0, 10, 10);
}
catch (){
Assert // true (pass the test)
return;
}

Assert. // false (test fails)
}

//从代码...

    public Triangle(double a, double b, double c) {
if ((a <= 0) || (b <= 0) || (c <= 0)){
throw new ArgumentException("The numbers must higher than 0.");
}
sides = new double[] { a, b, c };
}

最佳答案

首先,您应该抛出一个 ArgumentOutOfRangeException 而不仅仅是一个 ArgumentException

其次,您的单元测试应该期望抛出异常,如下所示:

[ExpectedException(typeof(ArgumentOutOfRangeException))]
public static void MyUnitTestForArgumentA()
{
...
}

因此,您需要创建单独的单元测试——每个参数一个——测试当参数超出范围时该方法是否抛出正确的异常。

关于c# - 检查单元测试中是否抛出参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744825/

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