小编scr*_*ton的帖子

如何在多个测试中模拟测试PHPUnit中的Web服务?

我试图使用PHPUnit测试Web服务接口类.基本上,这个类调用SoapClient对象.我试图使用getMockFromWsdl此处描述的方法在PHPUnit中测试此类:

http://www.phpunit.de/manual/current/en/test-doubles.html#test-doubles.stubbing-and-mocking-web-services

但是,由于我想从同一个类中测试多个方法,所以每次设置对象时,我都必须设置模拟WSDL SoapClient对象.这会导致抛出致命错误:

Fatal error: Cannot redeclare class xxxx in C:\web\php5\PEAR\PHPUnit\Framework\TestCase.php(1227) : eval()'d code on line 15
Run Code Online (Sandbox Code Playgroud)

如何在多个测试中使用相同的模拟对象,而不必每次都从WSDL重新生成它?这似乎是个问题.

-

有人要求发布一些代码来查看,这里是TestCase中的setup方法:

protected function setUp() {
    parent::setUp();

    $this->client = new Client();

    $this->SoapClient = $this->getMockFromWsdl(
        'service.wsdl'
    );

    $this->client->setClient($this->SoapClient);
}
Run Code Online (Sandbox Code Playgroud)

php phpunit soap web-services

11
推荐指数
1
解决办法
9141
查看次数

标签 统计

php ×1

phpunit ×1

soap ×1

web-services ×1