【发布时间】:2013-11-30 15:47:06
【问题描述】:
鉴于这个类:
class MyBuilder {
public function build($param1, $param2) {
// build dependencies ...
return new MyClass($dep1, $dep2, $dep3);
}
}
如何对这个类进行单元测试?
单元测试意味着我想测试它的行为,所以我想测试它以正确的依赖关系构建我的对象。但是,new 指令是硬编码的,我无法模拟它。
目前,我已将类的名称添加为参数(这样我就可以提供模拟类的类名),但这很丑:
class MyBuilder {
public function build($classname, $param1, $param2) {
// build dependencies ...
return new $classname($dep1, $dep2, $dep3);
}
}
是否有干净的解决方案或设计模式可以让我的工厂可测试?
【问题讨论】:
标签: php unit-testing design-patterns testing