我有一个带有字符串变量的公共静态类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获取实体名称?
答案 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")]