Con AutoFixture 2 () no está funcionando como lo hizo en AutoFixture 1?

StackOverflow https://stackoverflow.com/questions/4650424

  •  09-10-2019
  •  | 
  •  

Pregunta

Estoy portar mis pruebas para AutoFixture 2.0 , y me he encontrado a un comportamiento extraño que yo no puedo explicar ni solución. Esta sencilla prueba está fallando para mí:

var autoFixtures = new Fixture();
var file = autoFixtures.Build<File>()
                       .With(f => f.Name, "bleh.txt")
                       .CreateAnonymous();

Assert.That(file.Name, Is.EqualTo("bleh.txt"));  // Fail?!

La prueba tiene éxito si cambio Name a otra propiedad de File, lo que me lleva a pensar que tengo algún tipo de personalización para el presente Name que no estaba funcionando cuando yo estaba usando AutoFixture 1.0. He rastreado mi código, sin embargo, y no puedo encontrar nada de eso.

Habilitación del rastreo no parece que ayuda mucho.

autoFixtures.Behaviors.Add(new TracingBehavior());

muestra, entre otras cosas:

Requested: System.String Name
    Requested: Ploeh.AutoFixture.Kernel.SeededRequest
    Created: Ploeh.AutoFixture.Kernel.NoSpecimen
  Requested: Ploeh.AutoFixture.Kernel.SeededRequest
    Requested: System.String
    Created: Ploeh.AutoFixture.Kernel.NoSpecimen
    Requested: System.String
    Created: 8a022fda-fa4e-49b7-b0c2-285fef765386
  Created: Name8a022fda-fa4e-49b7-b0c2-285fef765386
Created: Name8a022fda-fa4e-49b7-b0c2-285fef765386

Fwiw, Name está declarada como una propiedad virtual de la clase base de File, y luego se reemplaza en File tales como:

public abstract class Item
{
    public virtual string Name { get; set; }
    ...
}

public class File : Item
{
    public override string Name { get; set; }
    ...
}

Si alguien tiene alguna idea en algo que podría intentar, o en algún lugar que podría haber personalizado inadvertidamente el comportamiento de la propiedad Name, estaría muy agradecido!

¿Fue útil?

Solución

Usted acaba de encontrar un error en AutoFixture 2.0. Ahora he resuelto y empujado a los cambios en el repositorio (conjunto de cambios 3efe812aecd1), por lo que si descargar la última fuente y compilarlo, debería funcionar.

En caso de estar interesado, que estaba relacionado con una propiedad virtual que se está anulado por una clase hija -., Aparentemente, no algo que hago muy a menudo

Lo siento por el error. Por favor, hágamelo saber si el problema no se ha resuelto, o si tiene otras preguntas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top