相关疑难解决方法(0)

声明一个const数组

是否可以写出类似以下的内容?

public const string[] Titles = { "German", "Spanish", "Corrects", "Wrongs" };
Run Code Online (Sandbox Code Playgroud)

.net c# arrays const readonly

421
推荐指数
12
解决办法
35万
查看次数

将实际十进制值作为属性的参数(例如xUnit.net的[InlineData]

我正在尝试使用xUnit.net进行单元测试.我想用'[InlineData]'进行'理论'测试,其中包括'小数':

[Theory]
[InlineData(37.60M)]
public void MyDecimalTest(decimal number)
{
    Assert.Equal(number, 37.60M);
}
Run Code Online (Sandbox Code Playgroud)

这是不可能的,因为您不能将小数创建为常量.我找到了解决方法,把数引号 LIK如此__CODE__.这实际上会将其转换为双重,这将使测试失败.

问题:
有解决方法吗?如果不是,为我的测试创建多个测试用例的最简单方法是什么?

c# decimal xunit.net

9
推荐指数
2
解决办法
5031
查看次数

将"TestCase"属性与二维数组一起使用

我正在使用NUnit并尝试为以下方法实现测试:它应该接受两个整数并返回二维数组.所以,我测试的标题看起来像:

[TestCase(5, 1, new int[,]{{1}, {2}, {3}, {4}, {5}})]
public void MyTestMethod(int a, int b, int[][] r)
Run Code Online (Sandbox Code Playgroud)

在编译期间,我遇到以下错误:

错误CS0182:属性参数必须是属性参数类型的常量表达式,typeof表达式或数组创建表达式(CS0182)


我知道可以使用TestCaseSource引用对象数组来完成,例如以下问题的答案:

它提供了如下代码:

private object[][] combination_tests =  new [] {
    new object[] {5, 1, new [,]{{1}, {2}, {3}, {4}, {5}}},
};

[Test]
[TestCaseSource("combination_tests")]
public void MyTestMethod(int a, int b, int[,] r)
Run Code Online (Sandbox Code Playgroud)

但我仍有一个问题:只使用TestCase属性是否可以做到这一点?

c# arrays nunit testcaseattribute

8
推荐指数
2
解决办法
2109
查看次数

标签 统计

c# ×3

arrays ×2

.net ×1

const ×1

decimal ×1

nunit ×1

readonly ×1

testcaseattribute ×1

xunit.net ×1