加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何为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();
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读