AutoFixture 2 mit () funktioniert nicht wie es in AutoFixture 1 getan hat?

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

  •  09-10-2019
  •  | 
  •  

Frage

Ich bin Portierung meine Tests auf AutoFixture 2.0 , und ich habe laufen in zu einem seltsamen Verhalten, dass ich kann weder noch fix erklären. Dieser einfache Test ist für mich Fehler:

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?!

Der Test ist erfolgreich, wenn ich ändern Name auf eine andere Eigenschaft von File, die mich führt zu glauben, dass ich eine Art von Anpassung vorhanden für Name haben, die nicht arbeiten, als ich 1,0 AutoFixture verwendet wurde. Ich habe meinen Code durchforstet, aber, und ich kann nicht so etwas finden.

Tracing Aktivieren scheint nicht zu helfen viel.

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

zeigt unter anderem Zeug:

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 wird als virtuelles Eigentum von File der Basisklasse deklariert, und dann in File als solche außer Kraft gesetzt:

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

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

Wenn jemand irgendwelche Ideen auf etwas hat, ich könnte versuchen, oder irgendwo könnte ich das Verhalten der Name Eigenschaft versehentlich angepasst haben, wäre ich sehr dankbar!

War es hilfreich?

Lösung

Sie haben gerade einen Fehler in AutoFixture 2.0. Ich habe jetzt beschlossen, und die Änderungen in das Repository (changeset 3efe812aecd1) gedrückt wird, so dass, wenn Sie Laden Sie die neueste Quelle und kompilieren sie es, sollte es funktionieren.

Falls Sie interessiert sind, wurden auf eine virtuelle Immobilie von einem Kind Klasse überschrieben werden -. Offenbar nicht etwas, was ich sehr oft tun

Sorry über die Fehler. Bitte lassen Sie mich wissen, wenn das Problem nicht behoben wird, oder wenn Sie weitere Fragen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top