Với thử nghiệm sau đây:AutoFixture: PropertyData và các thông số không đồng nhất
[Theory]
[PropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
)
{
var fixture = new Fixture();
var sut = fixture.Create<HtmlOutputBuilder>();
sut.DoSomething();
// More code
}
Tôi muốn để đóng gói tạo vật cố trong lớp học của riêng mình, một cái gì đó tương tự như:
[Theory]
[CustomPropertyData("GetValidInputForDb")]
public void GivenValidInputShouldOutputCorrectResult(
string patientId
, string patientFirstName
, HtmlOutputBuilder sut
)
{
sut.DoSomething();
// More code
}
Vấn đề là tôi sử dụng PropertyData
và sau đó cung cấp hai thông số đầu vào. Thực tế là sau đó tôi đang cố gắng tự động tạo lịch thi đấu của tôi như một tham số gây ra một ngoại lệ.
Đây là CustomPropertyData:
public class CustomPropertyDataAttribute : CompositeDataAttribute
{
public CustomPropertyDataAttribute(string validInput)
:base(new DataAttribute[]
{
new PropertyDataAttribute(validInput),
new AutoDataAttribute(new Fixture()
.Customize(new HtmlOutpuBuilderTestConvention())),
})
{
}
}
các tùy chọn để giải quyết này là gì?
'CustomPropertyData' trông như thế nào? –
@NikosBaxevanis Tôi đã cập nhật OP. Tôi đã cố gắng viết mã của mình theo http://nikosbaxevanis.com/2012/07/27/composite-xunit-net-data-attributes/. – DavidS