Biorąc pod uwagę następujący test:AutoFixture: PropertyData i parametry heterogeniczne
[Theory]
[PropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
)
{
var fixture = new Fixture();
var sut = fixture.Create<HtmlOutputBuilder>();
sut.DoSomething();
// More code
}
chcę otaczać tworzenie opraw w swojej klasie, coś podobnego do:
[Theory]
[CustomPropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
, HtmlOutputBuilder sut
)
{
sut.DoSomething();
// More code
}
Problemem jest to, że jestem przy użyciu PropertyData
, a druga z nich dostarcza dwa parametry wejściowe. Fakt, że próbuję automatycznie utworzyć moje urządzenie jako parametr powoduje wyjątek.
Oto CustomPropertyData:
public class CustomPropertyDataAttribute : CompositeDataAttribute
{
public CustomPropertyDataAttribute(string validInput)
:base(new DataAttribute[]
{
new PropertyDataAttribute(validInput),
new AutoDataAttribute(new Fixture()
.Customize(new HtmlOutpuBuilderTestConvention())),
})
{
}
}
Jakie są możliwości, aby rozwiązać ten problem?
Jak wygląda "CustomPropertyData"? –
@NikosBaxevanis Zaktualizowałem OP. Próbowałem napisać mój kod zgodnie z http://nikosbaxevanis.com/2012/07/27/composite-xunit-net-data-attributes/. – DavidS