0
我嘗試在Laravel中編寫測試。我提交了4個字段,我想檢查是否收到令牌作爲迴應。 我知道我這樣做,但我不知道如何在測試中檢查它。檢查API是否返回Laravel中的令牌(單元測試)
public function testSignup()
{
$this->json('POST', '/api/auth/signup',[
'prenom' => 'TestPrenom',
'nom' => 'TestNom',
'email' => '[email protected]',
'password' => 'motdepasse'
])->seeJson(['token']);
}
供參考,在這裏我得到運行測試錯誤:
有1次失敗:
1) SignupTest::testSignup
Unable to find JSON fragment [["token"]] within [{"token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOjEsImlzcyI6Imh0dHA6XC9cL2xvY2FsaG9zdFwvYXBpXC9hdXRoXC9zaWdudXAiLCJpYXQiOjE0NTY1Nzk2MTAsImV4cCI6MTQ1NjU4MzIxMCwibmJmIjoxNDU2NTc5NjEwLCJqdGkiOiI3YTlmODFmZDA3ZDc2NDdlZTA4NTE5NTgzYWFhZTRlYSJ9.P3SUqxpf1vTfWmSFH4aTC9GESloYTutFNOBpw0xgrjA"}].
Failed asserting that false is true.
/home/ubuntu/workspace/zoneapi/vendor/laravel/framework/src/Illuminate/Foundation/Testing/CrawlerTrait.php:262
/home/ubuntu/workspace/zoneapi/vendor/laravel/framework/src/Illuminate/Foundation/Testing/CrawlerTrait.php:221
/home/ubuntu/workspace/zoneapi/tests/SignupTest.php:22
我試圖用seeJsonStructure()方法,但我得到了未定義的方法錯誤。在這裏看到:
PHPUnit 4.8.23 by Sebastian Bergmann and contributors.
[Symfony\Component\Debug\Exception\FatalErrorException]
Call to undefined method SignupTest::seeJsonStructure()
Fatal error: Call to undefined method SignupTest::seeJsonStructure() in /home/ubuntu/workspace/zoneapi/tests/SignupTest.php on line 22
Call Stack:
0.0002 237272 1. {main}() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/phpunit:0
0.0214 1801432 2. PHPUnit_TextUI_Command::main() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/phpunit:47
0.0214 1802056 3. PHPUnit_TextUI_Command->run() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/TextUI/Command.php:100
0.3897 6474744 4. PHPUnit_TextUI_TestRunner->doRun() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/TextUI/Command.php:149
0.4090 6694592 5. PHPUnit_Framework_TestSuite->run() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/TextUI/TestRunner.php:440
0.4095 6710712 6. PHPUnit_Framework_TestSuite->run() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestSuite.php:747
0.4227 6714992 7. PHPUnit_Framework_TestCase->run() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestSuite.php:747
0.4228 6716632 8. PHPUnit_Framework_TestResult->run() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestCase.php:724
0.4245 6784448 9. PHPUnit_Framework_TestCase->runBare() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestResult.php:612
0.6029 14322288 10. PHPUnit_Framework_TestCase->runTest() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestCase.php:768
0.6030 14323048 11. ReflectionMethod->invokeArgs() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestCase.php:909
0.6030 14323128 12. SignupTest->testSignup() /home/ubuntu/workspace/zoneapi/vendor/phpunit/phpunit/src/Framework/TestCase.php:909
但我想測試是真實的任何值。如果*值爲 –
可以發佈完整的輸出: 'seeJsonStructure(['token'])' ? –
@LucienDubois你確定你使用最新的laravel版本嗎?檢查你的'MakesHttpRequests.php'和[原創](https://github.com/laravel/framework/blob/5.2/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php#L252) –