PHPUnit占位符用于空测试

时间:2013-01-30 22:49:00

标签: php unit-testing phpunit

我喜欢偶尔为占位符设置空函数(主要是空构造函数,因为它有助于避免构造函数的意外重复,因为我的团队知道必须总是在某处)。

我也喜欢为一个班级的每个方法至少进行一次测试(主要是因为这是让我的团队反对的一个很好的简单规则)。

我的问题很简单:我们应该在这些空测试方法中加入什么来防止“无测试”警告。

我们可以做$ this-> assertTrue(true),我知道它会正常工作。但是,我想知道是否有更多的官方和正确的触摸(最好是某些东西,因此该方法不计入测试运行的数量,人为地膨胀它一点)。

感谢。

2 个答案:

答案 0 :(得分:4)

试试这个:

/**
 * @covers Controllers\AdminController::authenticate
 * @todo   Implement testAuthenticate().
 */
public function testAuthenticate()
{
    // Remove the following lines when you implement this test.
    $this->markTestIncomplete(
      'This test has not been implemented yet.'
    );
}

答案 1 :(得分:0)

您在函数上尝试反射类并确保该方法存在。然后测试可能只是该方法存在(空或不存在),它将在没有警告的情况下通过。

class MethodExistsTest extends \PHPUnit_Framework_TestCase
{
    protected $FOO;

    protected function setUp()
    {
        $this->FOO = new \FOO();
    }

    /**
     * @covers \FOO::Bar
     */
    public function testEmptyMethodBarExists()
    {
        $ReflectionObject = new \ReflectionObject($this->FOO);
        $this->assertTrue($ReflectionObject->getMethod('Bar'));
    }

    /**
     * @covers \FOO::__construct
     */
    public function testConstructorExists()
    {
        $ReflectionObject = new \ReflectionObject($this->FOO);
        $this->assertNotNull($ReflectionObject->getConstructor());
    }
}