对象的 AutoFixture 深度冻结

AutoFixture deep freeze of object

我有一个class

public class GetDashboardStatisticsResult
{
  public GetPublicationStatisticsResult Publications { get; set; }
  public GetSwitchboardStatisticsResult Switchboard { get; set; }
}

我在测试中使用的是这样的

public async Task Should_return_correct_statistics([Frozen] GetDashboardStatisticsResult expectedResult);

我想知道是否有办法将 GetDashboardStatisticsResult 与其属性一起冻结?

所以最后我们冻结了三种类型 - GetDashboardStatisticsResultGetPublicationStatisticsResultGetSwitchboardStatisticsResult?

我认为 AutoFixture 没有任何功能可以实现类似的功能,但您可以像这样解决它:

[Theory, AutoData]
public async Task Should_return_correct_statistics(
    [Frozen]GetPublicationStatisticsResult dummy1,
    [Frozen]GetSwitchboardStatisticsResult dummy2,
    [Frozen]GetDashboardStatisticsResult expectedResult)
{
    // Test goes here...
}

最好的解决办法可能是重新考虑相关类型的设计。我从来没有遇到过需要这样的功能。你想解决什么问题?