2

我正在使用AutoFixturewithAutoMoqCustomization来提供所需的任何类依赖项的模拟。

我希望当我测试具有依赖项的类时,对该依赖项的任何方法调用都会返回该对象的 AutoFixtured 实例。

AutoFixture 正在为依赖项创建模拟,这些模拟正在返回对象,但对象是空的。任何可以为空的都将为空,任何不可为空的都将是默认值。

我知道我可以明确写

AutoFixture.Freeze<IDependent>()
    .Setup(x=>x.GetThing())
    .Returns(AutoFixture.Create<Thing>())

但我认为它可以在没有明确设置的情况下工作。这是预期的行为吗?

4

1 回答 1

4

您还必须告诉AutoMoqCustomization配置成员。我猜默认行为在其中一个版本中发生了变化:

fixture.Customize(new AutoMoqCustomization {ConfigureMembers = true});

实际上,这就是类文档AutoMoqCustomization建议:

/// <summary>
/// Enables auto-mocking with Moq.
/// </summary>
/// <remarks>
/// NOTICE! You can assign the customization properties to tweak the features you would like to enable. See example.
/// <br />
/// <code>new AutoMoqCustomization { ConfigureMembers = true }</code>
/// </remarks>
public class AutoMoqCustomization : ICustomization
于 2019-10-23T13:17:55.923 回答