Глядя на сообщение здесь , похоже, что я смогу создать несколько объектов с помощью CreateMany ()
, перебирать они используют foreach
, а затем возвращают их как массив.
Я вижу, что каждая итерация каждый раз создает новые объекты. Это ожидаемое поведение?
Объект для создания:
public class TestEntity
{
public int Id { get; private set; }
public string SomeString { get; set; }
public void SetId(int value)
{
this.Id = value;
}
}
Образец Program.cs:
private static int id;
static void Main(string[] args)
{
var fixture = new Fixture();
IEnumerable testEntities =
fixture.Build().CreateMany(5);
Output(testEntities);
foreach (var testEntity in testEntities)
{
testEntity.SetId(id++);
Console.WriteLine(
string.Format("CHANGED IN FOREACH:: hash: {0}, id: {1}, string: {2}",
testEntity.GetHashCode(), testEntity.Id, testEntity.SomeString));
}
Output(testEntities);
}
private static void Output(IEnumerable testEntities)
{
foreach (var testEntity in testEntities)
{
Console.WriteLine(
string.Format("hash: {0}, id: {1}, string: {2}",
testEntity.GetHashCode(), testEntity.Id, testEntity.SomeString));
}
}
Я создал проблему здесь (которую, вероятно, можно удалить, если это ожидаемое поведение).
Изменить 2011-06-02
Чтобы получить ожидаемое мной поведение, и если я этого не сделаю, Если вы хотите изменить поведение AutoFixture, я могу использовать метод расширения:
var fixture = new Fixture();
TestEntity[] testEntities = fixture.Build().CreateMany(5).ToArray();