簡體   English   中英

部分 mocking 不適用於 Model - Laravel 單元測試

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM