1

我有一个 phpunit 的测试用例,但是当它运行它的报告时没有断言。有明确的断言。它看起来与我的其他文件没有什么不同。如果我添加删除测试但断言未运行,则报告的测试数量是准确的。这是怎么回事。

class DeferTest extends PHPUnit_Framework_Testcase     
{
    public function testNotRequiredNumberOfArgs()
    {
        $this->setExpectedException('DeferException');
        $defer = null;
        $defer = new Defer();
    }


    public function testRun()
    {
        $defer = new Defer($this, 'runTest', 1, 2, 3);
        $this->assertEquals($defer->run(4, 5, 6), array(1, 2, 3, 4, 5, 6));
    }

    public function testClassNameRun()
    {
        $defer = new Defer('TestClass', 'run', 1, 2, 3);
        $this->assertEquals($defer->run(4, 5, 6), array(1, 2, 3, 4, 5, 6));
    }

    public function runTest()
    {
        return func_get_args();

    }
}

控制台输出

$ phpunit test/core/DeferTest.php
PHPUnit 3.7.21 by Sebastian Bergmann.
... 
Time: 0 seconds, Memory: 5.50Mb 
OK (3 tests, 0 assertions)
4

1 回答 1

0

感谢 cyprian,我通过在每种情况下都断言 true 并注释掉 runTest 方法发现问题是 runTest 方法。看来我正在覆盖 phpunit 测试用例中的方法。重命名方法解决了这个问题。

于 2013-06-13T15:32:30.653 回答