omportamento @AutoFixture IEnumerable <T> com CreateMany ()
Quando olha o postAqu, parece que eu consigo criar vários objetos usandoCreateMany()
, itere sobre eles usandoforeach
e, em seguida, retorne-os como uma matri
O que estou vendo é que cada iteração parece criar novos objetos a cada vez. Esse comportamento é esperado?
Entidade a criar:
public class TestEntity
{
public int Id { get; private set; }
public string SomeString { get; set; }
public void SetId(int value)
{
this.Id = value;
}
}
Sample Program.cs:
private static int id;
static void Main(string[] args)
{
var fixture = new Fixture();
IEnumerable<TestEntity> testEntities =
fixture.Build<TestEntity>().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<TestEntity> testEntities)
{
foreach (var testEntity in testEntities)
{
Console.WriteLine(
string.Format("hash: {0}, id: {1}, string: {2}",
testEntity.GetHashCode(), testEntity.Id, testEntity.SomeString));
}
}
Criei um problemaAqu (que provavelmente pode ser excluído se esse for o comportamento esperado
Edit 2011-06-02
Para obter o comportamento que eu esperava, e se não quiser modificar o comportamento do AutoFixture, posso usar um método de extensão:
var fixture = new Fixture();
TestEntity[] testEntities = fixture.Build<TestEntity>().CreateMany(5).ToArray();