Wie kann ich anweisen, AutoFixture nicht die Mühe das ausfüllen einige Eigenschaften?
Habe ich eine Reihe von Daten-Klassen Zugreifen, die Ineinander verschachtelt sind ziemlich tief.
Zu konstruieren, die eine Liste von 5 von Ihnen führt AutoFixture mehr als 2 Minuten. 2 Minuten pro Unit test ist viel zu lang.
Wenn ich die Codierung von hand, ich würde nur code, der diejenigen, die ich brauche, so würde das initialisieren schneller. Gibt es eine Möglichkeit zu sagen, AutoFixture um nur einige der Eigenschaften, so dass Sie nicht verbringen Sie Zeit mit Bereichen meiner Struktur, die ich nicht brauche?
Beispiel:
public class OfficeBuilding
{
public List<Office> Offices {get; set;}
}
public class Office
{
public List<PhoneBook> YellowPages {get; set;}
public List<PhoneBook> WhitePages {get; set;}
}
public class PhoneBook
{
public List<Person> AllContacts {get; set;}
public List<Person> LocalContacts {get; set;}
}
public class Person
{
public int ID { get; set; }
public string FirstName { get; set;}
public string LastName { get; set;}
public DateTime DateOfBirth { get; set; }
public char Gender { get; set; }
public List<Address> Addresses {get; set;}
}
public class Addresses
{
public string Address1 { get; set; }
public string Address2 { get; set; }
}
Gibt es eine Möglichkeit zu sagen, AutoFixture, Werte zu schaffen für OfficeBuilding.Offices.YellowPages.LocalContacts
, aber nicht die Mühe, mit OfficeBuilding.Offices.YellowPages.AllContacts
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Eine option zu schaffen, ist eine Anpassung, die es unterlässt Eigenschaften von einem bestimmten Namen:
Können Sie es verwenden, wie folgt:
Siehe auch:
Die Antwort von Nikos Baxevanis bietet verschiedene übereinkommen-basierte Möglichkeiten, die Frage zu beantworten. Der Vollständigkeits halber, können Sie auch eine weitere ad-hoc-build:
Wenn Sie möchten, dass Ihre Vorrichtung Instanz immer tun, können Sie es Anpassen:
Jedes mal, Fixture-Beispiel erstellt eine Instanz von Telefonbuch, es werde überspringen Sie die AllContacts Eigenschaft, was bedeutet, dass Sie gehen können:
und die AllContacts Eigenschaft bleiben unberührt.