[英]Laravel Mockery - This test did not perform any assertions
我正在嘗試創建一個嘲弄單元測試,但它給了我這個錯誤
這個測試沒有執行任何斷言
public function testGetById()
{
$mock = Mockery::mock(PostService::class)->makePartial();
$mock->shouldReceive('getById')
->withSomeOfArgs(1);
$mock->getById(1);
}
. 通過id獲取→這個測試沒有執行任何斷言\tests\Unit\PostControllerTest:php:30
測試:1 次風險時間:0.32 秒警告:Windows 平台不支持 TTY 模式。
很抱歉,我無法 100% 幫助您,我現在無法設置測試項目來嘗試此操作,但您可以嘗試:
public function testGetById()
{
$mock = Mockery::spy(PostService::class);
// Bind the mock to the Service Container so it gets injected (DI)
// Execute the code that would run that mock
$mock->shouldHaveReceived('getById')
->withSomeOfArgs(1);
}
如果在所需條件下調用了所需的方法,則間諜允許您進行間諜活動。 如果你mock
,你只是在“偽造”它將返回或做什么,如果你spy
,你將能夠斷言方法發生了什么。
在Mockery 官方文檔中閱讀更多相關信息。
有兩種選擇。
選項1:
$this->assertTrue(true);
選項 2:
您還可以擴展Mockery\Adapter\Phpunit\MockeryTestCase
而不是通常的PHPUnit\Framework\TestCase
。 這樣,您根本不必添加 phpunit 斷言。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.