テストをAutoFixture 2.0に移植していますが、説明も修正もできない奇妙な動作に遭遇しました。この簡単なテストは私にとって失敗しています:
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
の別のプロパティに変更すると、テストは成功します。これにより、 AutoFixture 1.0 を使用していたときに機能しなかったFile
何らかのカスタマイズが存在すると考えられます。Name
ただし、コードを精査しましたが、そのようなものは見つかりません。
トレースを有効にしてもあまり役に立たないようです。
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
FWIWName
は、 の基本クラスの仮想プロパティとして宣言され、次のようFile
にオーバーライドされFile
ます。
public abstract class Item
{
public virtual string Name { get; set; }
...
}
public class File : Item
{
public override string Name { get; set; }
...
}
私が試すかもしれない何か、またはName
プロパティの動作をうっかりカスタマイズしてしまった可能性がある場所について誰かがアイデアを持っている場合は、非常に感謝しています!