AutoFixture: PropertyData und heterogene Parameter
Angesichts des folgenden Tests:
[Theory]
[PropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
)
{
var fixture = new Fixture();
var sut = fixture.Create<HtmlOutputBuilder>();
sut.DoSomething();
// More code
}
Ich möchte die Erstellung von Scheinwerfern in einer eigenen Klasse zusammenfassen, ähnlich wie:
[Theory]
[CustomPropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
, HtmlOutputBuilder sut
)
{
sut.DoSomething();
// More code
}
Das Problem ist, dass ich verwendePropertyData
und der letztere liefert zwei Eingabeparameter. Die Tatsache, dass ich dann versuche, mein Gerät automatisch als Parameter zu erstellen, löst eine Ausnahme aus.
Hier sind die CustomPropertyData:
public class CustomPropertyDataAttribute : CompositeDataAttribute
{
public CustomPropertyDataAttribute(string validInput)
:base(new DataAttribute[]
{
new PropertyDataAttribute(validInput),
new AutoDataAttribute(new Fixture()
.Customize(new HtmlOutpuBuilderTestConvention() )),
})
{
}
}
Welche Möglichkeiten gibt es, um das Problem zu beheben?