Unit testing 测试构造函数
我的构造函数使用从数据库加载的数据设置属性。 如何测试它是否真的从db加载数据?我想要100%的测试覆盖率,所以我需要测试我的每一段代码Unit testing 测试构造函数,unit-testing,phpunit,Unit Testing,Phpunit,我的构造函数使用从数据库加载的数据设置属性。 如何测试它是否真的从db加载数据?我想要100%的测试覆盖率,所以我需要测试我的每一段代码 <?php class PreferencesAdapter { private $_preferences = NULL; public function __construct() { ... $this->load(); ..
<?php
class PreferencesAdapter {
private $_preferences = NULL;
public function __construct() {
...
$this->load();
...
}
public function load() {
...
$this->_preferences= DataFromDb();
}
}
?>
我会在一个测试方法中模拟加载()
,并验证它在创建对象时是否被调用过一次。(为了快速测试的利益,这里有一个冗长的方法可以做。)
或者,将相关查询作为公共方法放入类PreferencesAdapterQueryCollection中,并将其作为可选构造函数参数注入PreferencesAdapter。(如果没有发送参数,只需在此处实例化PreferencesAdapterQueryCollection。)
在PreferencesAdapterTest中,发送一个模拟的PreferencesAdapterQueryCollection,其中包含其公共简单查询方法的期望值和返回值
我喜欢嘲笑这个。参见问题,例如调用