自动修复对象的深度冻结

时间:2018-08-30 15:10:03

标签: c# unit-testing autofixture automoq

我上课

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

1 个答案:

答案 0 :(得分:1)

我不认为AutoFixture具有启用类似功能的任何功能,但您可以这样解决:

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

最好的解决方案可能是重新考虑所讨论类型的设计。我从未遇到过需要这种功能的情况。您要解决什么问题?