Я переношу свои тесты на AutoFixture 2.0, и я столкнулся с каким-то странным поведением, которое я не могу ни объяснить, ни исправить. Этот простой тест не удается для меня:AutoFixture 2 С() не работает, как в AutoFixture 1?
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?!
тест завершается успешно, если я изменю Name
другому свойству File
, что приводит меня к мысли, что у меня есть какие-то настройки настоящее время для Name
что не работал, когда я использовал AutoFixture 1.0. Тем не менее, я очистил свой код, и я не могу найти ничего подобного.
Включение трассировки, похоже, мало помогает.
autoFixtures.Behaviors.Add(new TracingBehavior());
дисплеи, среди других вещей:
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
объявляются как виртуальное свойство базового класса File
«с, а затем переопределен в File
как таковые:
public abstract class Item
{
public virtual string Name { get; set; }
...
}
public class File : Item
{
public override string Name { get; set; }
...
}
Если у кого-то есть идеи по чему-то, что я мог бы попробовать, или где-то я мог бы непреднамеренно настроить поведение Name
pro perty, я был бы очень благодарен!
Ouch! Это заставляет меня чувствовать себя лучше, если потратить кучу времени на это сейчас, по крайней мере. Рад, что все исправлено! – ladenedge