gpt4 book ai didi

AutoFixture 2 With() 不像在 AutoFixture 1 中那样工作?

转载 作者:行者123 更新时间:2023-11-30 23:54:22 26 4
gpt4 key购买 nike

我正在将我的测试移植到 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 测试成功到 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 的虚拟属性(property)的基类,然后在 File 中覆盖像这样:
public abstract class Item
{
public virtual string Name { get; set; }
...
}

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

如果有人对我可能尝试的某些事情有任何想法,或者我可能无意中自定义了 Name 的行为属性(property),我将不胜感激!

最佳答案

您刚刚在 AutoFixture 2.0 中发现了一个错误。我现在已经解决了它并将更改推送到存储库(更改集 3efe812aecd1),所以如果您 download the latest source并编译它,它应该可以工作。

如果您有兴趣,这与被子类覆盖的虚拟属性有关 - 显然不是我经常做的事情。

抱歉这个错误。如果问题尚未解决,或者您还有其他问题,请告诉我。

关于AutoFixture 2 With() 不像在 AutoFixture 1 中那样工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4650424/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com