/** * 给某个mock的stub桩件增加新的mock方法 * @param mock $stub * @param array $returns ['methodname'=>ret] 格式 * @return stub */ protected function mockMethod($stub, $returns) { foreach ($returns as $method => $ret) { $stub->method($method)->will($this->returnCallback(function () use($ret) { if (is_callable($ret)) { $arg = func_get_args(); return call_user_func_array($ret, $arg); } else { return $ret; } })); } return $stub; }