作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
只是试图将单元测试实现到棕地类型系统中。请注意,我对单元测试世界还比较陌生。当然,这将是一个渐进的迁移,因为痛苦的领域太多了。
我正在尝试解决的当前问题是,我们在 VB6 时代以及将应用程序转换为 .Net 时遵循了许多不良做法。我们有很多共享/静态函数,它们调用其他共享函数,而那些调用其他函数等等。有时依赖项作为参数传入,有时它们只是在调用函数中更新。我已经指示我们的开发人员停止创建共享函数,而是创建实例成员,并且只在接口(interface)之外使用这些实例成员,但这并不能缓解当前的情况。因此,您必须为代码路径中的每个函数递归地在顶层传递每个依赖项,并且方法签名变得一团糟。
我希望这是国际奥委会能解决的问题。目前我们正在使用 NUnit/Moq,我开始研究 StructureMap。到目前为止,我了解您几乎告诉 StructureMap for x 接口(interface)我想默认为具体类 y:
ObjectFactory.Initialize(x=>{x.ForRequestType<IInterface>().TheDefaultIsConcreteType<MyClass>()});
var mytype = ObjectFactory.GetInstance<IInterface>();
最佳答案
几乎,它不是 Elixir 。
请注意,IOC 容器应设置在您的应用程序根目录中。不是临时的。否则,您将实现一个反模式的服务定位器。
按照您的生产代码的构造注入(inject),让 IOC 容器解决您的依赖关系。对于单元测试,您只需对依赖项进行硬编码。这将允许您使用模拟对象(测试替身)。换句话说,IOC 与单元测试无关。
关于.net - 国际奥委会会解决我们的问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2436228/
我是一名优秀的程序员,十分优秀!