0

我对 C# 很陌生,来自 C++。我正在用 C# 编写一个测试框架,我希望编写测试用例尽可能简单。

我有两个问题无法找到最终的解决方案。因此,我请求一点帮助。

问题 #1

在 C# 中是否可以将不同类型作为函数的参数传递?

我想调用函数的方式如下:

[Test]
    public void TestCase1() => RunTestCase("test_data.csv",
        // from_m, to_m, parameter_to_test, operator,          expected_values
        (  1000,   1e6,  "vehicle_speed",   Operator.Greater,  50.0           // <-- double), 
        (  0,      1e6,  "vehicle_acc",     Operator.MinMax,   {500.0, 700.0} // <-- double[]),
        (  0,      70,   "vehicle_gear",    Operator.ValueSet, {1, 2, 3, 4}   // <-- int []),
        (  0,      10,   "vehicle_gear",    Operator.Gear,     1              // <-- int)
        (...),
    );

如您所见,可以是 ,expected_valuesdouble如何编写函数的签名以允许编写这样的测试用例?double[]intint[]RunTestCase

目前RunTestCase函数签名如下:

public void RunTestCase(string test_data_file, 
                        params (double start,
                                double end, 
                                string property, 
                                Operator op, 
                                /* what to use instead of double */ double values)[] expected)

我的问题是可以values有什么类型,以实现这一目标?

是否可以使用模板,类似于 C++?

问题2

像我在示例中所做的那样创建数组是否可行?我想要实现的是避免编写new int[] {1, 2, 3}和只写{1, 2, 3}. 正如我所说,我最感兴趣的是易于写作。

谢谢!

4

0 回答 0