Я создал построитель данных для создания тестовых данных в своих модульных тестах. Мои сборщики данных создают значения по умолчанию для всех свойств, поэтому для тестов, которые их используют, нужно указать только те свойства, которые применимы к тесту.Должен ли построитель тестовых данных строить значения по умолчанию для своих непримитивов?
Рассмотрим следующий конструктор:
public class CustomerBuilder
{
public int id = 0;
public Order order = new OrderBuilder().Build();
public CustomerBuilder WithId(int id)
{
this.id = id;
return this;
}
public CustomerBuilder WithOrder(Order order)
{
this.order = order;
return this;
}
public Customer Build()
{
return new Customer(id, order);
}
}
Делая это, если мне нужно создать клиента в испытании, в котором идентификатор имеет важное значение для меня, но орден не имеет значения, я могу создать объект следующим образом :
Customer c = new CustomerBuilder()
.WithId(99)
.Build();
Это хорошая идея? Или есть какая-то причина, почему не может быть лучше предположить, как должно быть построено не-примитивное свойство?