我们正在尝试将单元测试添加到现有应用程序中。我们愿意在某种程度上进行重构,但变量的绑定存在问题。
基本上,我们使用mysqli的bind_result方法将PHP变量绑定到mysqli结果。
问题是:我们有一种方法可以模拟这种行为吗?我的意思是,将变量直接写入方法的上下文。
另一种选择是在mysqli周围编写一个包装器,并更改每个方法调用,但我们正在努力避免这种情况,因为在给定的时间范围内要做的工作太多了。
发布于 2014-04-04 19:19:03
我不知道我在想什么,我通过引用忘记了参数。我将不得不为这个类编写一个特定的mock,但它应该可以工作。
class mysqli_stmt_mock {
private $references = array();
public function bind_result(&$var){
$this->references[] = &$var;
}
public function writeOnReferences(){
foreach($this->references as &$ref){
$ref = 'test_string1';
}
}
}
$test = new mysqli_stmt_mock();
$var1 = 'foo';
$var2 = 'foo2';
$test->bind_result($var1);
$test->bind_result($var2);
print_r($var1);
print_r($var2);
$test->writeOnReferences();
print_r($var1);
print_r($var2);https://stackoverflow.com/questions/22840304
复制相似问题