[英]Partial mocking is not working on Model - Laravel Unit test
我正在嘗試在 laravel model class 上運行這個非常簡單的單元測試。 真正的實現而不是模擬不斷被調用。 任何人都可以幫助我了解發生了什么問題。
class MockTest extends \Tests\TestCase
{
/**
* @test
*/
public function simpleMockTest()
{
$mock = Mockery::mock("App\Order[save]");
$mock->shouldReceive('save')->once()->andReturn(5);
$this->app->instance("App\Order", $mock);
$order = new Order();
$this->assertEquals(5, $order->save());
}
}
您沒有得到預期的結果,因為$order
沒有使用App\Order
的模擬實例。
改用$mock
會給你預期的結果:
{
/**
* @test
*/
public function simpleMockTest()
{
$mock = Mockery::mock("App\Order")
->makePartial();
$mock->shouldReceive('save')->once()->andReturn(5);
$this->app->instance("App\Order", $mock);
$this->assertEquals(5, $mock->save());
}
}```
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.