如何为symfony控制器编写php单元测试用例
发布时间:2020-12-13 16:10:27 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试为symfony控制器编写一个单元测试用例. 控制器代码 namespace AppBundleController;use SymfonyComponentHttpFoundationRequest;class Controller1 extends SecuredController{public function preExecute(Request $request) { parent::preExe
我正在尝试为symfony控制器编写一个单元测试用例.
控制器代码 namespace AppBundleController; use SymfonyComponentHttpFoundationRequest; class Controller1 extends SecuredController { public function preExecute(Request $request) { parent::preExecute($request); } public function indexAction() { return $this->render('help/index.html.twig'); } 我已经尝试编写如下所示的测试用例,但它会引发内部错误 namespace TestsAppBundleController; use SymfonyBundleFrameworkBundleTestWebTestCase; class Controller1Test extends WebTestCase { public function testIndex() { $client = static::createClient(); $response = $client->getResponse(); $this->assertEquals(200,$response->getStatusCode()); } } 任何建议对我都有帮助 解决方法
首先,是UNIT测试.你这里不需要客户.你只需要你想要测试的课程.
namespace TestsAppBundleController; use PHPUnitFrameworkTestCase; use AppBundleControllerController1; class Controller1Test extends TestCase { public function testIndex() { $this->request = $this->getMockBuilder( 'SymfonyComponentHttpFoundationRequest' )->disableOriginalConstructor() ->getMock(); $controller = new Controller1(); $controller->preExecute($this->request); $response = $controller->indexAction(); $this->assertEquals( 200,$response->getStatusCode() ); } } 例如,您的代码可能是 namespace TestsAppBundleController; use SymfonyComponentHttpFoundationResponse; class Controller1 extends SecuredController { public function indexAction() { return new Response(); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |