我的构造函数使用从数据库加载的数据设置属性。 如何测试它是否真的从db加载数据?我想要%100的测试覆盖率,所以我需要测试我的每一段代码。
<?php
class PreferencesAdapter {
private $_preferences = NULL;
public function __construct() {
...
$this->load();
...
}
public function load() {
...
$this->_preferences= DataFromDb();
}
}
?>
答案 0 :(得分:1)
我在测试方法中模拟load()
并验证在创建对象时它被调用一次。
答案 1 :(得分:0)
(为了快速测试,这是你可以做的一个罗嗦的方法。)
或者,将相关查询作为公共方法放在PreferencesAdapterQueryCollection类中,并将其作为可选构造函数参数注入PreferencesAdapter。 (如果没有发送参数,只需在那里实例化PreferencesAdapterQueryCollection。)
在PreferencesAdapterTest中,发送一个模拟的PreferencesAdapterQueryCollection,其公共简单查询方法具有期望值和返回值。
我喜欢Mockery。请参阅问题Mockery - call_user_func_array() expects parameter 1 to be a valid callback,例如调用。