2016-05-11 8 views
8

Ich benutze die AutoFixtion AutoData-Theorien stark zum Erstellen meiner Daten und Mocks. Das hindert mich jedoch daran, die InlineData-Attribute von XUnit zu verwenden, um eine Menge verschiedener Daten für meine Tests zu pumpen.So kombinieren Sie AutoDataAttribute mit InlineData

So bin ich im Grunde der Suche nach etwas wie folgt aus:

[Theory, AutoMoqDataAttribute] 
[InlineData(3,4)] 
[InlineData(33,44)] 
[InlineData(13,14)] 
public void SomeUnitTest([Frozen]Mock<ISomeInterface> theInterface, MySut sut, int DataFrom, int OtherData) 
{ 
    // actual test omitted 
} 

Ist so etwas möglich?

+1

Siehe auch [AutoFixture, xUnit.net und Auto Mocking] (http://blog.nikosbaxevanis.com/2012/07/31/autofixture-xunit-net-and-auto-mocking/). –

Antwort

8

Du musst deine eigene erstellen InlineAutoMoqDataAttribute, ähnlich wie diese:

public class InlineAutoMoqDataAttribute : InlineAutoDataAttribute 
{ 
    public InlineAutoMoqDataAttribute(params object[] objects) : base(new AutoMoqDataAttribute(), objects) { } 
} 

und Sie es wie folgt verwenden würde:

[Theory] 
[InlineAutoMoqData(3,4)] 
[InlineAutoMoqData(33,44)] 
[InlineAutoMoqData(13,14)] 
public void SomeUnitTest(int DataFrom, int OtherData, [Frozen]Mock<ISomeInterface> theInterface, MySut sut) 
{ 
    // actual test omitted 
} 

Beachten Sie, dass die eingereihten Daten, die Ints in Dieser Fall muss der erste Parameter der Testmethode sein. Alle anderen Parameter werden von AutoFixture zur Verfügung gestellt.

Verwandte Themen