Nar*_*yan 5 php phpunit testcase laravel laravel-7.x
对于laravel API,我已经编写了测试用例。但是每当我运行测试用例时,它总是因以下错误而失败,
1) Tests\Feature\CompanyTest::orgTest
Expected status code 200 but received 404.
Failed asserting that 200 is identical to 404.
Run Code Online (Sandbox Code Playgroud)
添加$this->withoutExceptionHandling();到测试用例代码后,它返回以下错误,
1) Tests\Feature\CompanyTest::orgTest
Symfony\Component\HttpKernel\Exception\NotFoundHttpException: POST domainname/index.php/api/company
/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/InteractsWithExceptionHandling.php:126
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:415
/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:113
/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:507
/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:473
/vendor/laravel/framework/src/Illuminate/Foundation/Testing/Concerns/MakesHttpRequests.php:332
/tests/Feature/CompanyTest.php:21
Run Code Online (Sandbox Code Playgroud)
我在测试文件中的代码是,
public function orgTest()
{
$requestData = ["organizationId" => 10,"offset"=>1,"limit"=>10,"notificationId"=>""];
$response = $this->withoutExceptionHandling();
$response->postJson('/index.php/api/company',$requestData);
$response->assertStatus(200);
}
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索了错误并尝试了许多解决方案但无法成功。任何人请让我知道是什么问题。
这是一个 404 错误,因此找不到您的网页:
Symfony\Component\HttpKernel\Exception\NotFoundHttpException: POST domainname/index.php/api/company
Run Code Online (Sandbox Code Playgroud)
不好的方法,发布到“域名”/api/company或“域名/index.php/api/company”,但不包含“域名”!
如果它不起作用,请检查该 api 路由的路由配置。你的控制器和动作声明得好吗?