W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
當(dāng)應(yīng)用程序需要和 web 服務(wù)進(jìn)行交互時,會想要在不與 web 服務(wù)進(jìn)行實際交互的情況下對其進(jìn)行測試。為了簡單地對 web 服務(wù)進(jìn)行上樁或模仿,可以像使用 getMock()
(見上文)那樣使用 getMockFromWsdl()
。唯一的區(qū)別是 getMockFromWsdl()
所返回的樁件或者仿件是基于以 WSDL 描述的 web 服務(wù),而 getMock()
返回的樁件或者仿件是基于 PHP 類或接口的。
Example?9.20, “對 web 服務(wù)上樁”展示了如何用 getMockFromWsdl()
來對(例如)GoogleSearch.wsdl
中描述的 web 服務(wù)上樁。
Example?9.20.?對 web 服務(wù)上樁
<?php
class GoogleTest extends PHPUnit_Framework_TestCase
{
public function testSearch()
{
$googleSearch = $this->getMockFromWsdl(
'GoogleSearch.wsdl', 'GoogleSearch'
);
$directoryCategory = new stdClass;
$directoryCategory->fullViewableName = '';
$directoryCategory->specialEncoding = '';
$element = new stdClass;
$element->summary = '';
$element->URL = 'https://phpunit.de/';
$element->snippet = '...';
$element->title = '<b>PHPUnit</b>';
$element->cachedSize = '11k';
$element->relatedInformationPresent = TRUE;
$element->hostName = 'phpunit.de';
$element->directoryCategory = $directoryCategory;
$element->directoryTitle = '';
$result = new stdClass;
$result->documentFiltering = FALSE;
$result->searchComments = '';
$result->estimatedTotalResultsCount = 3.9000;
$result->estimateIsExact = FALSE;
$result->resultElements = array($element);
$result->searchQuery = 'PHPUnit';
$result->startIndex = 1;
$result->endIndex = 1;
$result->searchTips = '';
$result->directoryCategories = array();
$result->searchTime = 0.248822;
$googleSearch->expects($this->any())
->method('doGoogleSearch')
->will($this->returnValue($result));
/**
* $googleSearch->doGoogleSearch() 將會返回上樁的結(jié)果,
* web 服務(wù)的 doGoogleSearch() 方法不會被調(diào)用。
*/
$this->assertEquals(
$result,
$googleSearch->doGoogleSearch(
'00000000000000000000000000000000',
'PHPUnit',
0,
1,
FALSE,
'',
FALSE,
'',
'',
''
)
);
}
}
?>
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: