Rat*_*eek 6 .net c# unit-testing legacy-code
我刚刚完成了Michael Feathers的" 有效使用遗留代码 "一书.这本书是关于如何有效地创建测试接缝并利用它们来获取现有代码的好书.
他谈到的一种技术是使用"链接接缝".基本上这个想法是,如果你有代码依赖于另一个库,你可以使用链接器插入一个不同的库进行测试而不是生产.这将允许您通过模拟库感知测试条件,或避免调用具有真实世界效果的库(数据库,电子邮件等)等.
他给出的例子是用C++编写的.我很好奇这种技术(或类似的东西)是否可以在.NET/C#中使用?
是的,在.Net 中这是可能的。在最简单的情况下,您只需将一个程序集替换为另一个同名程序集即可。
对于强命名程序集,您应该更改版本号,然后配置程序集绑定以覆盖编译时“链接”版本。这可以在企业、机器、用户或目录级别上完成。
有一些与安全相关的注意事项。如果您想要替换的程序集已被强命名,那么您将需要在对该程序集进行签名时重新创建相同的公钥。
换句话说,如果您作为应用程序开发人员不希望您的库被“模拟”(或者可能被恶意代码替换),那么您必须确保程序集已签名并且私钥不公开。
这就是为什么你不能模拟 DateTime —— 因为 Microsoft 已经强命名了 .Net 的核心库。
| 归档时间: |
|
| 查看次数: |
744 次 |
| 最近记录: |