gpt4 book ai didi

.net - 国际奥委会会解决我们的问题吗?

转载 作者:行者123 更新时间:2023-12-01 00:03:27 25 4
gpt4 key购买 nike

只是试图将单元测试实现到棕地类型系统中。请注意,我对单元测试世界还比较陌生。当然,这将是一个渐进的迁移,因为痛苦的领域太多了。

我正在尝试解决的当前问题是,我们在 VB6 时代以及将应用程序转换为 .Net 时遵循了许多不良做法。我们有很多共享/静态函数,它们调用其他共享函数,而那些调用其他函数等等。有时依赖项作为参数传入,有时它们只是在调用函数中更新。我已经指示我们的开发人员停止创建共享函数,而是创建实例成员,并且只在接口(interface)之外使用这些实例成员,但这并不能缓解当前的情况。因此,您必须为代码路径中的每个函数递归地在顶层传递每个依赖项,并且方法签名变得一团糟。

我希望这是国际奥委会能解决的问题。目前我们正在使用 NUnit/Moq,我开始研究 StructureMap。到目前为止,我了解您几乎告诉 StructureMap for x 接口(interface)我想默认为具体类 y:

ObjectFactory.Initialize(x=>{x.ForRequestType<IInterface>().TheDefaultIsConcreteType<MyClass>()});

然后运行时:
var mytype = ObjectFactory.GetInstance<IInterface>();

IOC 容器将为您初始化正确的类型。尚不确定如何将假货换成混凝土类型,但希望这很简单。国际奥委会会再次解决我上面谈到的问题吗?是否有一个特定的 IOC 框架会比 StructureMap 做得更好,或者他们都可以处理这种情况。任何帮助将非常感激。

最佳答案

几乎,它不是 Elixir 。

请注意,IOC 容器应设置在您的应用程序根目录中。不是临时的。否则,您将实现一个反模式的服务定位器。

按照您的生产代码的构造注入(inject),让 IOC 容器解决您的依赖关系。对于单元测试,您只需对依赖项进行硬编码。这将允许您使用模拟对象(测试替身)。换句话说,IOC 与单元测试无关。

关于.net - 国际奥委会会解决我们的问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436228/

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