【问题标题】:Generating a single unit test for a function inside of a controller Symfony2/PHP为控制器 Symfony2/PHP 中的函数生成单个单元测试
【发布时间】:2015-07-08 02:29:16
【问题描述】:

我有一个存在于控制器中的函数。 我想通过编写一个带有断言的小单元测试来确保逻辑是合理的,以与函数的输出正确匹配。

我创建了一个新的单元文件夹来存放控制器的所有小单元测试。正确的术语可能是功能测试?

这是我必须容纳该函数的所有断言的当前设置。我的问题是,在这个外部控制器中存在的所有功能中,我怎样才能将该功能引入并对其内部的逻辑进行测试?

<?php


namespace Acme\SimplewanBundle\Tests\Unit;

use Doctrine\ORM\Tools\SchemaTool;

class ConfigControllerUnitTest extends \PHPUnit_Framework_TestCase {


    public function testValidIpRange() {





    }

}

【问题讨论】:

  • 能把你要测试的方法的代码贴出来吗?
  • 我认为对控制器进行单元测试没有多大意义。而是将您的逻辑移动到单独的类中。如果您真的想测试控制器,请使用 behat 进行功能测试。

标签: php unit-testing symfony


【解决方案1】:

首先,该方法可能应该转移到独立于控制器的服务中。在任何情况下,无需进行更改,您就可以像测试任何其他 PHP 类一样测试控制器类:

namespace Acme\SimplewanBundle\Tests\Unit;

use Doctrine\ORM\Tools\SchemaTool;

class ConfigControllerUnitTest extends \PHPUnit_Framework_TestCase {

    public function testValidIpRange()
    {
        $controller = new \AppBundle\Controller\ConfigController();
        $this->assertTrue($controller->isValidIpRange(...));
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-30
    • 2012-04-24
    • 2016-08-03
    • 1970-01-01
    • 2014-09-25
    • 2011-11-29
    • 2012-11-27
    相关资源
    最近更新 更多