欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php mock接口

在開發(fā)過程中,我們經(jīng)常會(huì)遇到依賴于其他后臺(tái)接口的情況,這時(shí)候我們可能并不能訪問這些接口,或者這些接口還未開發(fā)完畢。這時(shí)候,使用mock接口能夠幫助我們模擬這些接口的返回?cái)?shù)據(jù),從而達(dá)到api聯(lián)調(diào)的目的。

我們可以利用php框架中一些第三方mock庫(kù),比如shouldReceive('send')->andReturn('mock data'); }); $sEnty = new App\Sms(); var_dump($sEnty->send()); // output "mock data"

在上面的例子中,我們使用了phpunit框架繼承自PHPUnit_Framework_TestCase類的mock方法來模擬了App\\Sms類中的send方法并返回字符串"mock data"。執(zhí)行完mock之后,我們實(shí)例化Sms類并調(diào)用send方法,輸出的將是我們定義的mock字符串。

在實(shí)際開發(fā)中,我們還可以利用mock接口來模擬各種接口返回?cái)?shù)據(jù)及狀態(tài)碼:

public function testMockGetApi() {
$mock = \Mockery::mock(API::class)
->shouldReceive('get')
->with('http://api.example.com/user/1')
->once()
->andReturn([
'id' =>1,
'name' =>'Lucas',
'email' =>'example@gmail.com'
]);
$this->app->instance(API::class, $mock->getMock());
$response = $this->get('/users/1');
$response->assertStatus(200);
$response->assertJson([
'data' =>[
'id' =>1,
'name' =>'Lucas',
'email' =>'example@gmail.com'
]
]);
}

在這個(gè)例子中,我們使用了laravel phpunit包和mockery庫(kù)來模擬了API::class中的get方法,并且返回一個(gè)模擬的json數(shù)據(jù)。接著我們將API::class的實(shí)例指定為我們新建的mock對(duì)象,并對(duì)路由"/users/1"發(fā)起get請(qǐng)求。最后,我們對(duì)返回的數(shù)據(jù)進(jìn)行狀態(tài)碼和json數(shù)據(jù)的校驗(yàn),一切順利,mock接口被成功使用。

總結(jié)來說,mock接口能夠幫助我們?cè)陂_發(fā)過程中解決依賴其他接口的問題,并且方便測(cè)試過程中模擬和驗(yàn)證接口的數(shù)據(jù)的正確性。