2016-04-05 11 views
0

Ich versuche eine Variable als InlineData zu verwenden, wenn xUnit verwendet wird.Inline-Variablen zu einer Theorie hinzufügen xUnit

Es sieht wie folgt aus:

static string home = "test"; 

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

Aber ich bin immer die Fehlermeldung: „Ein Attribut Argument ein konstanter Ausdruck, typeof Ausdruck oder Array-Erstellungsausdruck eines Attributs Parametertyp sein muss“

Gibt es eine Möglichkeit für mich zu tun, was ich versuche? Oder muss ich nur die Inline-Daten fest codieren.

Antwort

2

Sie könnten es mit const string home = "test" tun, denn das wäre ein konstanter Ausdruck.

Sie dort auch den MemberData Attribut machen könnte, um etwas zu zeigen, das yield return new object[]{ "test" }; tut, die mehr gewunden ist in diesem Fall, aber flexibler in Bezug auf die nicht konstant sein zu müssen, und so dass Sie viele solcher Arrays erhalten haben Der Test wurde wiederholt an verschiedenen Datensätzen durchgeführt.