2016-05-11 10 views
8

ile nasıl birleştirilir? Verilerimi ve alaylarımı oluşturmak için Otomatik Düzeltme Otomatik Veri Kuramlarını kullanırım. Ancak bu, XUnit'ten InlineData Özniteliklerini benim testlerim için bir grup farklı veride kullanmamı engelliyor.AutoDataAttribute, InlineData

Yani temelde böyle bir şey arıyorum:

[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 
} 

bu mümkün gibi bir şey var mı?

+1

Ayrıca bkz. [AutoFixture, xUnit.net ve Auto Mocking] (http://blog.nikosbaxevanis.com/2012/07/31/autofixture-xunit-net-and-auto-mocking/). –

cevap

8

oluşturmak gerekecek senin buna benzer InlineAutoMoqDataAttribute, kendi:

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

ve bu gibi kullanabilirsiniz istiyorum:

[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 
} 

Not o satır içi veri, int de Bu durum, test yönteminin ilk parametreleri olmalıdır. Diğer tüm parametreler AutoFixture tarafından sağlanacaktır.