如何使用 Microsoft Fakes shim 隔离(绕行)内部构造函数?

How to isolate (detour) internal constructor with Microsoft Fakes shim?

我找到了一堆 StreamReader 的例子,但是如何绕过内部构造函数?我需要使用内部构造函数创建一些 public class 的伪造品,以便能够测试我的隔离代码。

假设我有

public class ChangesPostProcessor
{
    public void Process(IEnumerable<DbEntityEntry> changes)
    {
    ...
    }
 }

在这种特殊情况下,我需要伪造一组 DbEntityEntry 才能模拟他的众多方法(使用 DB)并测试我的隔离逻辑。

我终于采用了包装器方法,并使用我自己的 class 和 public 构造函数实现了 IDbEntityEnty 接口,其中包含 DbEntityEntry。 它允许我进行测试,但让我重写了大量代码以将依赖项从 DbEntityEntry 更改为 IDbEntityEntry。