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

mockery php

Mockery是PHP開(kāi)發(fā)中常用的一個(gè)mock對(duì)象庫(kù),它可以幫助我們創(chuàng)建一個(gè)模擬對(duì)象或測(cè)試替身。在PHP開(kāi)發(fā)中,我們常常會(huì)遇到需要測(cè)試某些業(yè)務(wù)邏輯的情況,但是由于依賴關(guān)系的存在,我們無(wú)法直接進(jìn)行測(cè)試。這時(shí)候,就需要使用Mockery來(lái)創(chuàng)建一個(gè)模擬對(duì)象,用于測(cè)試。下面我們來(lái)看看具體如何使用Mockery。

首先,我們需要安裝Mockery,可以通過(guò)composer進(jìn)行安裝:

composer require mockery/mockery

下面我們來(lái)舉一個(gè)實(shí)際的例子來(lái)說(shuō)明使用Mockery的過(guò)程:

class UserControllerTest extends PHPUnit_Framework_TestCase
{
public function testIndex()
{
$userMock = Mockery::mock('User');
$userMock->shouldReceive('getList')->andReturn(array(
array('id' =>1, 'name' =>'Tom', 'age' =>18),
array('id' =>2, 'name' =>'Jerry', 'age' =>19),
array('id' =>3, 'name' =>'Mike', 'age' =>20),
));
$controller = new UserController($userMock);
$this->assertEquals(
array(
array('id' =>1, 'name' =>'Tom', 'age' =>18),
array('id' =>2, 'name' =>'Jerry', 'age' =>19),
array('id' =>3, 'name' =>'Mike', 'age' =>20),
),
$controller->index()
);
}
}

在這個(gè)例子中,我們要測(cè)試UserController的index方法,但是該方法依賴User模型,我們無(wú)法直接測(cè)試。所以我們使用Mockery來(lái)創(chuàng)建一個(gè)模擬的User對(duì)象,用于測(cè)試。在測(cè)試方法中,我們首先創(chuàng)建了一個(gè)User模擬對(duì)象$userMock,然后通過(guò)shouldReceive方法設(shè)定了當(dāng)該模擬對(duì)象調(diào)用getList方法時(shí)應(yīng)該返回的結(jié)果。最后,我們通過(guò)UserController的構(gòu)造方法,將該模擬對(duì)象作為參數(shù)傳遞進(jìn)入U(xiǎn)serController中。這樣就能夠在不依賴于真實(shí)User對(duì)象的情況下,測(cè)試UserController的index方法。

除了shouldReceive方法之外,Mockery還提供了很多其他方法,可以用于設(shè)定模擬對(duì)象的行為。下面是一份Mockery常用方法列表:

  • shouldReceive($method):設(shè)定當(dāng)模擬對(duì)象調(diào)用$method方法時(shí)應(yīng)該返回的結(jié)果。
  • times($times):設(shè)定該mock對(duì)象在測(cè)試中應(yīng)該被調(diào)用的次數(shù)。
  • andReturn($results):設(shè)定模擬對(duì)象應(yīng)該返回的結(jié)果。
  • andReturnNull():設(shè)定模擬對(duì)象應(yīng)該返回空值。
  • andReturnSelf():設(shè)定模擬對(duì)象應(yīng)該返回自身。
  • andThrow($exception):設(shè)定模擬對(duì)象拋出異常時(shí)應(yīng)該拋出的異常。
  • everything():設(shè)定模擬對(duì)象應(yīng)該模擬的方法。

Mockery的使用相對(duì)來(lái)說(shuō)比較簡(jiǎn)單,我們只需要根據(jù)需要選擇適當(dāng)?shù)姆椒▉?lái)設(shè)定模擬對(duì)象的行為即可。在測(cè)試中,Mockery可以幫助我們避免復(fù)雜的依賴關(guān)系,讓測(cè)試變得更加簡(jiǎn)單和可靠。