小编xTu*_*iOx的帖子

Lambda 表达式作为 xUnit 中的内联数据

我对 xUnit 很陌生,这就是我想要实现的目标:

[Theory]
[InlineData((Config y) => y.Param1)]
[InlineData((Config y) => y.Param2)]
public void HasConfiguration(Func<Config, string> item)
{
    var configuration = serviceProvider.GetService<GenericConfig>();
    var x = item(configuration.Config1); // Config1 is of type Config

    Assert.True(!string.IsNullOrEmpty(x));            
}
Run Code Online (Sandbox Code Playgroud)

基本上,我有一个GenericConfig对象,其中包含Config和其他类型的配置,但我需要检查每个参数是否有效。由于它们都是字符串,我想简化使用[InlineData]属性而不是编写 N 等于测试。

不幸的是,我得到的错误是“无法将 lambda 表达式转换为类型 'object[]' 因为它不是委托类型”,这非常清楚。

您对如何克服这个问题有任何想法吗?

.net c# unit-testing xunit

7
推荐指数
2
解决办法
4003
查看次数

标签 统计

.net ×1

c# ×1

unit-testing ×1

xunit ×1