Da der folgende Test:AutoFixture: Property und heterogene Parameter
[Theory]
[PropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
)
{
var fixture = new Fixture();
var sut = fixture.Create<HtmlOutputBuilder>();
sut.DoSomething();
// More code
}
Ich will Befestigungs Schöpfung in ihrer eigenen Klasse kapseln, so etwas wie:
[Theory]
[CustomPropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
, HtmlOutputBuilder sut
)
{
sut.DoSomething();
// More code
}
Das Problem ist, dass ich bin mit PropertyData
und letzterer liefert zwei Eingabeparameter. Die Tatsache, dass ich dann versuche, mein Fixture automatisch als Parameter zu erzeugen, verursacht eine Ausnahme.
Hier ist die CustomPropertyData:
public class CustomPropertyDataAttribute : CompositeDataAttribute
{
public CustomPropertyDataAttribute(string validInput)
:base(new DataAttribute[]
{
new PropertyDataAttribute(validInput),
new AutoDataAttribute(new Fixture()
.Customize(new HtmlOutpuBuilderTestConvention())),
})
{
}
}
Was sind die Optionen dieses Problem zu beheben?
Wie sieht das 'CustomPropertyData' aus? –
@NikosBaxevanis Ich habe das OP aktualisiert. Ich habe versucht, meinen Code nach http://nikosbaxevanis.com/2012/07/27/composite-xunit-net-data-attributes/ zu schreiben. – DavidS