控制器中未定义的变量,我正在尝试用laravel中的phpunit进行测试

控制器中未定义的变量,我正在尝试用laravel中的phpunit进行测试,php,unit-testing,laravel,phpunit,Php,Unit Testing,Laravel,Phpunit,我正在尝试学习单元测试的基础知识,我正在使用phpunit和laravel 这是我的控制器 FatController.php 还有考试班 FatControllerTest.php 据我所知,当测试运行时,它应该创建一个新变量$test,该变量等于FatController的一个新实例,值为100% 然后,它运行$test FatController方法getResult,该方法应返回$result,构造函数已将其定义为“100%” 当测试运行时,我得到了这个 PHP Warning: Un

我正在尝试学习单元测试的基础知识,我正在使用phpunit和laravel

这是我的控制器

FatController.php 还有考试班

FatControllerTest.php 据我所知,当测试运行时,它应该创建一个新变量$test,该变量等于FatController的一个新实例,值为100%

然后,它运行$test FatController方法getResult,该方法应返回$result,构造函数已将其定义为“100%”

当测试运行时,我得到了这个

PHP Warning:  Uncaught exception 'ErrorException' with message 'Undefined variable: result' in /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php:15
Stack trace:
#0 /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php(15): Illuminate\Exception\Handler->handleError(8, 'Undefined varia...', '/Users/irish/Dr...', 15, Array)
#1 /Users/irish/Dropbox/www/youtube/app/tests/FatControllerTest.php(22): FatController->getResult()
#2 [internal function]: FatControllerTest->testResult()
#3 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(983): ReflectionMethod->invokeArgs(Object(FatControllerTest), Array)
#4 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(838): PHPUnit_Framework_TestCase->runTest()
#5 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php(648): PHPUnit_Framework_TestCase->runBare()
#6 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(783): PHPUnit_Framework_TestResult->run(Object(Fat in /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php on line 15
PHP Fatal error:  Cannot access empty property in /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php on line 15

所以我知道$result没有被定义为任何东西,当getResult试图返回它时,这会导致一个错误,但我不知道我做错了什么,看起来你有输入错误<代码>返回$this->$result应该是
返回$this->result

看起来你有打字错误<代码>返回$this->$result
应该是
返回$this->result

就这些,谢谢。你介意向我解释一下当构造函数运行$this->result=$result时会发生什么吗;从那时起使用result而不是$result意味着什么?您只需将
$result
赋值给属性。看看PHP,就这些了,谢谢。你介意向我解释一下当构造函数运行$this->result=$result时会发生什么吗;从那时起使用result而不是$result意味着什么?您只需将
$result
赋值给属性。看看PHP。
class FatControllerTest extends TestCase {

    /**
     * A basic functional test example.
     * @return void
     */

    public $test;

    public function setUp()
    {
        parent::setUp();
        $this->test = new FatController('100%');
    }

    public function testResult()
    {
        $result = $this->test->getResult();
        $this->assertTrue($result == '100%', 'message');
    }
}
PHP Warning:  Uncaught exception 'ErrorException' with message 'Undefined variable: result' in /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php:15
Stack trace:
#0 /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php(15): Illuminate\Exception\Handler->handleError(8, 'Undefined varia...', '/Users/irish/Dr...', 15, Array)
#1 /Users/irish/Dropbox/www/youtube/app/tests/FatControllerTest.php(22): FatController->getResult()
#2 [internal function]: FatControllerTest->testResult()
#3 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(983): ReflectionMethod->invokeArgs(Object(FatControllerTest), Array)
#4 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(838): PHPUnit_Framework_TestCase->runTest()
#5 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestResult.php(648): PHPUnit_Framework_TestCase->runBare()
#6 /Users/irish/.composer/vendor/phpunit/phpunit/PHPUnit/Framework/TestCase.php(783): PHPUnit_Framework_TestResult->run(Object(Fat in /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php on line 15
PHP Fatal error:  Cannot access empty property in /Users/irish/Dropbox/www/youtube/app/controllers/FatController.php on line 15