自动编写包装器和接口以便依赖注入第三方库的方法?

Jer*_*acs 8 c# unit-testing dependency-injection wrapper

我正在使用第三方库类Foo,它有几个公共方法和属性,我的类用作依赖项.

我想测试我的类并模拟Foo对象,但它没有接口.所以我在思考,我可以在自己的类中继承该类,提取一个接口,瞧!我会有一个注射接口.

......但当然有并发症. Foo有一堆公共领域.这些不能进入接口,所以我必须为字段编写属性包装器.它很烦人.

有没有自动化的方法来做到这一点?我有ReSharper,但似乎没有办法自动执行此操作,这意味着我正在编写大量繁琐的代码.

Jon*_*han 2

我将创建一个包装类,它使用您设计的接口,仅公开您需要从 Foo 获取的内容。

例如:

class MyFooWrapper : IFoo
{
   private Foo _foo;
    // methods exposed by IFoo
 }
Run Code Online (Sandbox Code Playgroud)

您可以进一步将 MyFooWrapper 设为一个抽象类来包含属性和任何其他基本功能,但不要将 Foo 放在那里,而是使用一个继承 foo 包装器的类。