猿问

在 PHPunit 测试期间模拟在方法内创建的对象

我目前正在尝试扩展我的工作应用程序的单元测试覆盖范围,但我正面临现有服务向 SOAP api 发送数据的问题。我想模拟 \SoapClient 对象,它是在我想测试的方法中创建的。


现在我找不到设置模拟来替换真正的 SoapClient 对象的方法。模拟对象是应返回“true”的 UploadFlight 方法的简单模拟。


在这里你可以看到方法:


    public function sendPreflightPlanning()

    {

        $doc = $this->getPreflightPlanning();


        $client = new \SoapClient($this->wsdl, [

            'soap_version' => \SOAP_1_2,

            'trace' => true,

        ]);


        return $client->UploadFlights($doc);

    }

如前所述,我的模拟应该是$clientvar。


慕桂英546537
浏览 120回答 1
1回答

子衿沉夜

遵循 Myxaxa 的评论并在我这边进行了一些研究后,似乎最好的方法就是将肥皂客户端作为依赖项注入。
随时随地看视频慕课网APP
我要回答