2016-04-05 3 views
0

Я пытаюсь использовать переменную InlineData при использовании xUnit.Добавить встроенные переменные в теорию xUnit

Это выглядит следующим образом:

static string home = "test"; 

[Theory] 
[InlineData(home)] 
public void AddTest(string location) 
{ 
    Assert.True(LocationIs(location)); 
} 

Но я получаю ошибку: «Аргумент атрибута должен быть константным выражением, TypeOf выражения выражения или создания массива атрибута типа параметра»

Есть ли способ сделать то, что я пытаюсь сделать? Или мне нужно просто жестко закодировать встроенные данные.

ответ

2

Вы можете сделать это с помощью const string home = "test", потому что это будет постоянное выражение.

Вы можете также использовать атрибут MemberData, чтобы указать на то, что делает yield return new object[]{ "test" };, которое более запутанным в этом случае, но более гибким с точки зрения не имея постоянной, и позволяет дать много таких массивов, чтобы иметь тест повторяется повторно на разных наборах данных.