laravel 未找到“嘲笑”类

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20826539/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-14 08:49:18  来源:igfitidea点击:

Class 'Mockery' not found

unit-testinglaravellaravel-4phpunitmockery

提问by timothylhuillier

I use laravel (4.1) framework and i read "Laravel-testing-decoded", it's a ebook by Jeffrey Wey.

我使用 Laravel (4.1) 框架并阅读了“Laravel-testing-decoded”,这是 Jeffrey Wey 的电子书。

I want to test my modal User and my method setPasswordAttribute($password)

我想测试我的模态用户和我的方法 setPasswordAttribute($password)

My unit-testing :

我的单元测试:

<?php

class UserTest extends TestCase {

    public function testHashesPasswordWhenSet(){

        Hash::shouldReceive('make')->once()->andReturn('hashed');

        $user = new User;
        $user->password = 'food';

        $this->assertEquals('hashed', $user->password);
    }
}

But when i launch CLI : phpunitit return me a error : Fatal error: Class 'Mockery' not found

但是当我启动 CLI 时:phpunit它返回一个错误:Fatal error: Class 'Mockery' not found

In complete error :

完全错误:

    Fatal error: Class 'Mockery' not found in /Applications/MAMP/htdocs/ptf/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php on line 84

    Call Stack:
        0.0021     236384   1. {main}() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/composer/bin/phpunit:0
        0.0294    1425104   2. PHPUnit_TextUI_Command::main() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/composer/bin/phpunit:63
        0.0294    1425336   3. PHPUnit_TextUI_Command->run() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:129
        0.0692    3626416   4. PHPUnit_TextUI_TestRunner->doRun() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/TextUI/Command.php:176
        0.0741    3944720   5. PHPUnit_Framework_TestSuite->run() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/TextUI/TestRunner.php:349
        0.0741    3946368   6. PHPUnit_Framework_TestSuite->run() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:705
        0.0742    3946968   7. PHPUnit_Framework_TestSuite->runTest() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:745
        0.0742    3947000   8. PHPUnit_Framework_TestCase->run() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestSuite.php:775
        0.0743    3948232   9. PHPUnit_Framework_TestResult->run() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:783
        0.0754    4005504  10. PHPUnit_Framework_TestCase->runBare() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php:648
        0.2926   15417592  11. PHPUnit_Framework_TestCase->runTest() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:838
        0.2926   15418872  12. ReflectionMethod->invokeArgs() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:983
        0.2926   15418904  13. UserTest->testHashesPasswordWhenSet() /Applications/MAMP/htdocs/ptf/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php:983
        0.2928   15426728  14. Illuminate\Support\Facades\Facade::shouldReceive() /Applications/MAMP/htdocs/ptf/app/tests/models/UserTest.php:7
        0.2928   15426944  15. Illuminate\Support\Facades\Facade::createFreshMockInstance() /Applications/MAMP/htdocs/ptf/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:50
        0.2928   15427040  16. Illuminate\Support\Facades\Facade::createMockByName() /Applications/MAMP/htdocs/ptf/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:64

I don't understand, why i have this error.

我不明白,为什么我有这个错误。

回答by petkostas

Do you have Mockery installed? If not, update your composer.json:

你安装了 Mockery 吗?如果没有,请更新您的composer.json

"require-dev": {
    "mockery/mockery": "dev-master@dev"
}

Then run:

然后运行:

 composer update