为什么AutoMoqCustomization嵌套依赖项不尊重冻结的模拟?

Eld*_*dar 5 c# unit-testing moq autofixture

我已经尝试使用它AutoMoqCustomization来自动模拟具有嵌套依赖关系的对象图,结果不像我预期的那样.下面是失败的测试代码(使用FluentAssertions进行断言).在运行测试时,IDependant注入的模型与之前冻结的模拟模型Dependant2不同IObject.这是嘲笑冻结的错误,还是我不能正确理解如何使用它?

注意:我读到有关使用的内容AutoConfiguredMoqCustomization,但是当它有一个IDependant属性IObject Obj { get; }时它不起作用但是当它有一个方法时它可以工作IObject GetObj();,这是预期的行为AutoConfiguredMoqCustomization吗?

失败的测试代码:

[TestClass]
public class MyTestClass
{
     [TestMethod]
     public void Test()
     {
         var fixture = new Fixture().Customize(new AutoMoqCustomization());

         var objMock = fixture.Freeze<Mock<IObject>>();
         var sut = fixture.Create<Dependant2>();

         sut.Obj.Should().BeSameAs(objMock);
     }
}

public interface IObject { }

public interface IDependant { IObject Obj { get; } }

public class MyObject : IObject { }

public class Dependant2
{
    public Dependant2(IDependant dependant)
    {
       Obj = dependant.Obj; 
    }

    public IObject Obj { get; }
}
Run Code Online (Sandbox Code Playgroud)