如何使用 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。
我找到了一堆 StreamReader 的例子,但是如何绕过内部构造函数?我需要使用内部构造函数创建一些 public class 的伪造品,以便能够测试我的隔离代码。
假设我有
public class ChangesPostProcessor
{
public void Process(IEnumerable<DbEntityEntry> changes)
{
...
}
}
在这种特殊情况下,我需要伪造一组 DbEntityEntry 才能模拟他的众多方法(使用 DB)并测试我的隔离逻辑。
我终于采用了包装器方法,并使用我自己的 class 和 public 构造函数实现了 IDbEntityEnty 接口,其中包含 DbEntityEntry。 它允许我进行测试,但让我重写了大量代码以将依赖项从 DbEntityEntry 更改为 IDbEntityEntry。