【发布时间】:2019-12-29 06:15:37
【问题描述】:
我正在使用单元测试覆盖一些遗留代码。我有一些看起来像这样的代码†(我已经删除了与这个问题无关的位):
public function search($query) {
$query = urlencode($query);
$url = 'https://example.com/search.php?q=' . $query;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => $url,
));
$data = curl_exec($curl);
if (!$data) {
throw new Exception('An error occurred while trying to process the request.');
}
}
如何强制curl 请求失败,以便Exception 获得thrown?在完全覆盖之前,我不允许更改方法中的现有代码。除了查询字符串之外,URL 是硬编码的,所以我无法更改它,并且查询字符串是用urlencode() 正确编码的 URL,所以我不能通过格式错误的字符串。
查询是否有可以超出的安全字符串长度?也许我可以用ini_set() 更改设置?
† 我知道代码中的错误
【问题讨论】:
标签: php unit-testing curl code-coverage