Laravel 4 如何在laravel中模拟find方法?

Laravel 4 如何在laravel中模拟find方法?,laravel-4,mocking,phpunit,Laravel 4,Mocking,Phpunit,我正在尝试编写一个单元测试,我需要能够模拟对App::make('ClassName')->find($x)的内部调用。但是,当我尝试这一点时: $mock = $this->getMockBuilder('ClassName')-> setMethods(['find'])-> getMock(); $mock->method('find')->willReturn('test'); echo $mock-&

我正在尝试编写一个单元测试,我需要能够模拟对App::make('ClassName')->find($x)的内部调用。但是,当我尝试这一点时:

    $mock = $this->getMockBuilder('ClassName')->
        setMethods(['find'])->
        getMock();
    $mock->method('find')->willReturn('test');
    echo $mock->find(1);
我得到了一个
PHPUnit\u Framework\u MockObject\u BadMethodCallException
,其中没有描述错误的消息。查看ad xdebug跟踪,我看到它调用mock::find方法,然后立即调用spl_autoload_调用以获取BadMethodCallException类


为什么find方法失败了?如果我使用不同的方法(例如,
findx
),那么它可以完美地工作。
查找
的神奇之处是什么?我如何修复它?

你可以使用mocky…它非常容易模仿。