lundi 1 août 2016

How to use AutoFixture to build with customized properties while keeping type customizations?

I am trying to use autofixture to create an object but their are certain properties that I want to always be defaulted (while the rest could be auto generated). However, whenever I setup an customization it gets overwritten when I build with customizations.

void Main()
{
    var fixture = new Fixture();
    fixture.Customize<Person>(composer => composer.With(p => p.Name, "Ben"));

    var person = fixture.Build<Person>()
        .With(p => p.DateOfBirth, new DateTime(1900, 1, 1))
        .Create();

    /*  RESULT OF person below
    Name    null
    DateOfBirth 1/1/1900
    StreetAddress   StreetAddressafd6b86b-376a-4355-9a9c-fbae34731453
    State   State019e867b-ac5e-418f-805b-a64146bc06bc
    */
}

public class Person
{
    public string Name { get; set;}

    public DateTime DateOfBirth { get; set;}

    public string StreetAddress { get; set;}

    public string State { get; set;}
}

The "Name" and "DateOfBirth" property customizations do not conflict so I don't know why Name ends up being null. I would expect name to be "Ben".

How can I get it so both customizations are applied (ie. Name = "Ben" and DateOfBirth = 1/1/1900?

Aucun commentaire:

Enregistrer un commentaire