Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么我能';不要在Laravel中创建Mock_Laravel_Unit Testing_Mockery - Fatal编程技术网

为什么我能';不要在Laravel中创建Mock

为什么我能';不要在Laravel中创建Mock,laravel,unit-testing,mockery,Laravel,Unit Testing,Mockery,最后几天我在PHPLaravel中进行单元测试。我对测试很陌生,但我一般都读过关于如何制作测试的书。。。但事实上我写不好。仍然有一些错误。这是我要测试的类(方法)(模拟): 我们模拟calCalCalDistances()方法 这是我的测试示例 public function testCalcAllDistances() { $double = Mockery::mock(Locations::class)->shouldReceive('all')->with('')-&g

最后几天我在PHPLaravel中进行单元测试。我对测试很陌生,但我一般都读过关于如何制作测试的书。。。但事实上我写不好。仍然有一些错误。这是我要测试的类(方法)(模拟):

我们模拟
calCalCalDistances()
方法

这是我的测试示例

public function testCalcAllDistances()
{
    $double = Mockery::mock(Locations::class)->shouldReceive('all')->with('')->andReturn(5)->getMock();
    $this->app->instance('App\Locations', $double);
    $object_under_tests = new \App\Helpers\ApiHelper($double);

    $result = $object_under_tests->calcAllDistances('21.132312,21.132312');

    $expected_result = [2.3, 4.7, 8.9];

    $this->assertEquals($expected_result, $result);
}
不管怎样,我还是会犯这样的错误:

1) Tests\Unit\ApiHelper::testCalcAllDistances
Mockery\Exception\BadMethodCallException: Static method Mockery_0_App_Locations::all() does not exist on this mock object

D:\xampp4\htdocs\api\api\app\Helpers\ApiHelper.php:26
D:\xampp4\htdocs\api\api\tests\Unit\ApiHelperTest.php:41

Caused by
Mockery\Exception\BadMethodCallException: Received Mockery_0_App_Locations::all(), but no expectations were specified
我用我的灵魂发誓,尝试了互联网上的一切。。。。但我仍然无法编写测试。基本上,我想模拟雄辩的方法all()来返回我给定的值,以使calCalDistances()方法工作。尝试了很多,makePartial()等,但没有任何帮助。
非常感谢您的帮助

您试图模拟一个静态方法,但您编写的代码却模拟了一个公共方法。包含您正在寻找的嘲弄方式

另一方面,由于诸如模仿静态方法之类的问题,不鼓励为雄辩的模型编写单元测试。拉雷维尔建议改为写作。这些将为一个临时数据库植入测试所需的模型(以牺牲一些性能为代价)

1) Tests\Unit\ApiHelper::testCalcAllDistances
Mockery\Exception\BadMethodCallException: Static method Mockery_0_App_Locations::all() does not exist on this mock object

D:\xampp4\htdocs\api\api\app\Helpers\ApiHelper.php:26
D:\xampp4\htdocs\api\api\tests\Unit\ApiHelperTest.php:41

Caused by
Mockery\Exception\BadMethodCallException: Received Mockery_0_App_Locations::all(), but no expectations were specified