gpt4 book ai didi

c# - 如何使用 decimal.MaxValue 进行测试?

转载 作者:可可西里 更新时间:2023-11-01 02:58:53 24 4
gpt4 key购买 nike

考虑以下测试:

public void FooTest(decimal? val)
{
Check.That(true).IsTrue();
}

我想用极端值(即MaxValueMinValue)运行这个测试。

[TestCase(decimal.MaxValue)]

这会输出以下错误:属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式

[TestCase(79228162514264337593543935)]

我现在明白了:积分常数太大

最后一次绝望的尝试:

[TestCase(79228162514264337593543935M)]

显然我得到这个是因为强制转换:属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式

如何编写以 decimal.MaxValue 作为参数的单元测试?我可以为这个有问题的案例编写一个特定的测试,但我想知道是否有办法编写这样的 TestCase

最佳答案

既然其他人都说了,为什么会出现这个问题,你的代码应该使用TestCaseSource编写测试的属性:

private static object[] TestValues = 
{
new object[]{ Decimal.MaxValue },
new object[]{ Decimal.MinValue }
};

[TestCaseSource("TestValues")]
public void FooTest(decimal value)
{
Assert.That(value, Is.EqualTo(Decimal.MaxValue));
}

关于c# - 如何使用 decimal.MaxValue 进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25115397/

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