gpt4 book ai didi

c# - 为第三方库的依赖注入(inject)编写包装器和接口(interface)的自动化方法?

转载 作者:太空狗 更新时间:2023-10-29 19:40:51 27 4
gpt4 key购买 nike

我正在使用第三方库类 Foo,它具有我的类用作依赖项的多个公共(public)方法和属性。

我想测试我的类并模拟 Foo 对象,但它没有接口(interface)。所以我在想,我可以在我自己的类中继承这个类,提取一个接口(interface),瞧!我会有一个可注入(inject)接口(interface)。

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

是否有自动执行此操作的方法?我有 ReSharper,但似乎没有办法自动执行此操作,这意味着我正在编写大量乏味的代码。

最佳答案

您应该将被测类分成两个单独的类。一个类包含您需要测试的(业务)逻辑,另一个类充当外部依赖项的适配器。这个适配器类应该实现一个接口(interface),而逻辑类应该依赖于该接口(interface)。这个接口(interface)应该模仿外部依赖的API,但是这个接口(interface)应该在应用程序的需要中定义。通过这样做,您可以:

您最终会得到一个与外部库紧密耦合的适配器类。该适配器会将传入调用转换为可以发送到外部库的内容。此适配器无法单独测试,如果测试很重要,您可能需要对此进行集成测试(取决于外部库的功能)。重要的是,您不必测试外部库是否正常工作,但您可能仍想测试适配器类的正确性。

关于c# - 为第三方库的依赖注入(inject)编写包装器和接口(interface)的自动化方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31681275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com