如何将变量插入字符串方法

时间:2019-10-22 08:21:17

标签: c# selenium automation

我有一个带有字符串变量的公共静态类Entity

public static string entityName = ConfigurationManager.AppSettings["entity.name"];

我需要对此进行测试

[TestCase(Data.User.userType.ClientUser,Data.Enitity.entityname)]

当我将其用于测试时,出现错误An Attribute argument must be a constant expression.

如何从Data.cs获取实体名称?

1 个答案:

答案 0 :(得分:2)

首先,您不能将变量传递给属性,它们必须是常量。

第二,看起来您正在使用NUnit,因此可以使用TestCase来代替TestCaseSource。请参阅文档here

因此,您首先需要一个类来返回数据:

public class MyDataClass
{
    public static IEnumerable TestCases
    {
        get
        {
            yield return new TestCaseData(Data.User.userType.ClientUser,
                                          Data.Enitity.entityname);
        }
    }  
}

您的TestCase属性被替换为:

[TestCaseSource(typeof(MyDataClass), "TestCases")]