我正在尝试使用 PHPUnit 测试 Web 服务接口类。基本上,这个类调用肥皂客户端目的。我正在尝试使用 PHPUnit 测试此类getMockFromWsdl
这里描述的方法:
http://www.phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubbing-and-mocking-web-services http://www.phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubbing-and-mocking-web-services
但是,由于我想测试同一个类中的多个方法,因此每次设置对象时,我还必须设置模拟 WSDL肥皂客户端目的。这会导致抛出致命错误:
Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
如何在多个测试中使用同一个模拟对象,而不必每次都从 WSDL 重新生成它?这似乎是问题所在。
--
被要求发布一些代码来查看,这是测试用例中的设置方法:
protected function setUp() {
parent::setUp();
$this->client = new Client();
$this->SoapClient = $this->getMockFromWsdl(
'service.wsdl'
);
$this->client->setClient($this->SoapClient);
}
这不是一个理想的解决方案,但在您的设置中为 SOAP 模拟提供一个“随机”类名,例如
$this->_soapClient = $this->getMockFromWsdl( 'some.wsdl', 'SoapClient' . md5( time().rand() ) );
这可以确保至少在调用安装程序时不会出现该错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)