首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysqli bind_result的模拟行为

mysqli bind_result的模拟行为
EN

Stack Overflow用户
提问于 2014-04-03 22:10:11
回答 1查看 167关注 0票数 1

我们正在尝试将单元测试添加到现有应用程序中。我们愿意在某种程度上进行重构,但变量的绑定存在问题。

基本上,我们使用mysqli的bind_result方法将PHP变量绑定到mysqli结果。

问题是:我们有一种方法可以模拟这种行为吗?我的意思是,将变量直接写入方法的上下文。

另一种选择是在mysqli周围编写一个包装器,并更改每个方法调用,但我们正在努力避免这种情况,因为在给定的时间范围内要做的工作太多了。

EN

回答 1

Stack Overflow用户

发布于 2014-04-04 19:19:03

我不知道我在想什么,我通过引用忘记了参数。我将不得不为这个类编写一个特定的mock,但它应该可以工作。

代码语言:javascript
复制
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);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22840304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档