使用容器创建要测试的对象是否可以?或者我应该手动构建它们吗?
答案 0 :(得分:2)
是的,它没关系,并且会让小猫免于被杀。请记住,IoC容器对三件事很有用:
如果您需要这三个项目中的任何一项,为什么不让这个工作的工具为您做?
答案 1 :(得分:1)
是和否。
你当然可以使用一个,但你不应该拥有(容器非常适合组成复杂的系统,但在单元测试中,这些复杂性不应该存在)。
你为什么要考虑它?手工卷制的等价物只是单调乏味(它总是如此),还是会难以理解?如果是后者那么你就会在问题上放置胶带。
答案 2 :(得分:0)
无论哪种方式都能为您提供最准确(最接近真实用例)和最轻(无所有依赖关系)的待测单元实例。如果你巧妙地构建你的类 - 大部分都没有 - 你应该能够在没有依赖性的情况下实例化它们,因此测试应该是快速的。如果你想同时对一组类运行测试(看看它们是如何协同工作的......但是,如果有很多人这样做,我不知道),那么也许是一个工厂(一个封装实例化的设计模式)和一些存根或者司机会做的。
http://wiki.answers.com/Q/What_is_stubs_and_drivers_in_software_testing
所以,不是一个“容器”本身,但可能还有其他一些模式或类别,你负责重建理想的测试环境。