最理想的组件是只专注于自身工作的组件,它没有其它额外的逻辑。不过按照这种标准,目前大部分的代码都是不符合的。因此,目前在开源软件界出现了一些轻量级的容器框架,典型的如上文提到的PicoContainer和spring。他们的定位就是提供一个对组件管理的统一模式,而组件可以单独的使用,也可以放在另一个容器中,容器仅仅只是为组件提供了一些额外的功能,和组件本身没有直接的依赖。
为什么我们说接口比继承好,很重要的一个原因就是接口更加灵活,组件的依赖性更弱,同样的,目前另一种做法则是采用一些标记性的语言来实现比接口更大的灵活度。例如基于xml的配置文件,以及J2SE1.5中将要引入的属性。
组件的测试
组件和容器的依赖脱离为组件测试提供了一个很好的环境。我们在测试一节中讨论过容器内测试往往是比较麻烦的,其原因就是在于上面所说的组件污染问题。例如在 spring框架中,组件是一个标准的JavaBean,你可以直接编写代码来设置组件的属性和定义组件之间的依赖关系(适用于自动化测试),也可以把这项工作交给spring容器(适用于开发和部署)。
组件测试在测试的分类中属于集成测试。
文章来源于领测软件测试网 https://www.ltesting.net/