2013-01-15 146 views
0

我的构造函数设置了从数据库加载的数据的属性。 如何测试它是否真的从db加载数据?我想要百分之百的测试覆盖率,所以我需要测试我的每一段代码。测试构造函数

<?php 
class PreferencesAdapter { 

    private $_preferences = NULL; 

    public function __construct() {   
       ... 
     $this->load(); 
       ... 
    } 

    public function load() { 
     ... 
     $this->_preferences= DataFromDb(); 
    } 
} 
?> 

回答

1

我在模拟load()在测试方法中,并验证它在创建对象时被调用一次。

+0

请问您可以提供代码示例吗? –

0

(在快速测试的兴趣,这里是一个罗嗦的方法,你可以做的。)

或者,把你的相关查询作为一类PreferencesAdapterQueryCollection公共方法,并注入它作为一个可选的构造函数参数PreferencesAdapter 。 (如果没有发送参数,只需在那里实例化PreferencesAdapterQueryCollection。)

在PreferencesAdapterTest中,发送模拟的PreferencesAdapterQueryCollection,其公共简单查询方法具有期望值和返回值。

我喜欢这种嘲笑。例如,请参阅问题Mockery - call_user_func_array() expects parameter 1 to be a valid callback调用。