Wcf 单元测试程序集在进程外运行
有没有人有过测试“进程外组件”的经验? 我正在测试一些配置为进程外激活的Com+(服务组件)和WCF服务,我不确定在这些情况下测试的最佳实践是什么 我所做的是为公共类提供它们自己的IOC容器,它们可以在激活后构建IOC容器。这很好,但我在尝试和单元测试时遇到了问题,原因有二Wcf 单元测试程序集在进程外运行,wcf,unit-testing,dependency-injection,gac,com+,Wcf,Unit Testing,Dependency Injection,Gac,Com+,有没有人有过测试“进程外组件”的经验? 我正在测试一些配置为进程外激活的Com+(服务组件)和WCF服务,我不确定在这些情况下测试的最佳实践是什么 我所做的是为公共类提供它们自己的IOC容器,它们可以在激活后构建IOC容器。这很好,但我在尝试和单元测试时遇到了问题,原因有二 我想要注入的任何依赖项对象都需要可序列化,因为单元测试运行在不同的进程中。如果我想将一个附加模块(ninject)加载到to-com+内核/ioc容器中,我需要编写自己的模块,使其可序列化。我不喜欢仅仅为了做测试而将事情序列
我同意您的第一个建议:为运行在流程中运行程序集的测试提供一个单独的工作副本 优点是:
- 一旦您的系统上有了这个功能,它将在其他团队成员的机器上运行,而无需任何配置
- 由于您没有进行进程间调用,测试将运行得更快
我记得我第一次开始测试驱动开发的时候。和你一样,我不愿意仅仅为了适应自动化测试而更改代码。我逐渐改变了我的心态。图书馆需要服务于两个同样重要的客户:生产客户端代码和测试。
一般来说,我会为一个进程中的组件编写测试,以及在另一个进程中编写组件,而不必麻烦中间的点(只要保持它们尽可能薄)。
如果您要测试两个独立流程之间的交互,我认为这几乎是一个定义上的集成测试。这是Jon Skeet hehe的测试