как интерполировать переменную в строковый метод - PullRequest
1 голос
/ 22 октября 2019

У меня есть открытый статический класс 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 Ответ

2 голосов
/ 22 октября 2019

Во-первых, вы не можете передавать переменные в атрибуты, они должны быть постоянными.

Во-вторых, похоже, что вы используете NUnit, поэтому вместо TestCase вы можете использовать TestCaseSource,См. Документы здесь .

Итак, сначала вам нужен класс для возврата ваших данных:

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

И ваш атрибут TestCase заменяется на:

[TestCaseSource(typeof(MyDataClass), "TestCases")]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...