【发布时间】:2019-07-31 13:33:27
【问题描述】:
我目前正在尝试扩展我的工作应用程序的单元测试覆盖范围,并且我面临一个现有服务将数据发送到 SOAP api 的问题。我想模拟 \SoapClient 对象,它是在我要测试的方法中创建的。
现在我找不到一种方法来设置一个模拟来替换真正的 SoapClient 对象。模拟对象是 UploadFlight 方法的简单模拟,应该返回“true”。
这里可以看到方法:
public function sendPreflightPlanning()
{
$doc = $this->getPreflightPlanning();
$client = new \SoapClient($this->wsdl, [
'soap_version' => \SOAP_1_2,
'trace' => true,
]);
return $client->UploadFlights($doc);
}
如前所述,我的模拟应该是$client var。
问候,
【问题讨论】:
-
编写单元测试有助于解决拱问题。你发现了你的问题。这就是为什么真正的方法是将 $client 注入您的课程的原因。然后单元测试覆盖率就不会有问题