xUnit - 将 List<> 传递给我的测试会引发错误 [重复]

Posted

技术标签:

【中文标题】xUnit - 将 List<> 传递给我的测试会引发错误 [重复]【英文标题】:xUnit - Passing List<> to my test is throwing an error [duplicate] 【发布时间】:2022-01-15 13:23:47 【问题描述】:

我正在考虑使用 xUnit 进行测试。我喜欢它的一些功能。

我正在尝试创建一个列表并将该列表作为测试的参数传递:

    [Theory]
    [InlineData( new List<IDispenseEntity>() )]
    public void Test1(List<IDispenseEntity> data)
    

        // Some test here Assert.Equal(2, 2);
    

我得到:

属性参数必须是常量表达式,typeof 表达式 或属性参数类型的数组创建表达式

我想用列表中元素的不同组合来测试各种列表。

如何将 List 传递给我的测试?

【问题讨论】:

【参考方案1】:

InlineData 属性只接受编译时值(常量)。 寻找MemberData

[Theory]
[MemberData(nameof(EmptyList))]
public void Test1(List<IDispenseEntity> data)


    // Some test here Assert.Equal(2, 2);


public static IEnumerable<object[]> EmptyList()

    yield return new[]  new List<IDispenseEntity>() ;

【讨论】:

以上是关于xUnit - 将 List<> 传递给我的测试会引发错误 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能将 List<List<Foo>> 传递给 IEnumerable<IEnumerable<Foo>>

将 java List<Double> 传递给 dart List<double> 时出错

在 Dart 和 JavaScript 之间传递对象列表 — 将 List<dynamic> 转换为 List<GeocodeResult>

如何将 List<Model> 从 Activity 传递到 Fragment

XUnit 模拟传递和断言集合

将 List<> 传递给 SQL 存储过程