我正在编写一个项目的单元测试(用
PHP编写,使用
PHPUnit),它的整个环境(加载的组件,事件,配置,缓存,每个环境单例等)保存在一个对象中,所有组件都使用它来进行交互彼此(使用中介模式).
为了使单元测试运行得更快,我正在共享环境对象和一些其他对象(例如,在我的测试用例中用于视图对象[如在MVC的V中],视图管理器对象[充当视图对象的工厂,负责实际渲染])在同一测试用例中的测试中(使用PHPUnit的setUpBeforeClass()和静态属性).
尽管如此,据我所知,我共享的对象不应影响测试的完整性(例如,在视图的情况下,环境和视图管理器对象是共享的,但是为每个对象创建了一个单独的视图对象测试 – 这是测试用例实际测试的对象),它对我来说感觉越来越不对.
如果每个测试使用完全隔离的环境并且不能以任何方式影响同一测试用例中的其他测试,我宁愿使用它.然而,这会使测试运行得慢得多,感觉价格很高,我无法确切地指出其缺点,主要是“感觉不对”.
你怎么看?你能否指出任何缺点,以便我可以说服自己值得更长的执行时间?或者我只是过度反应而且完全没问题?