2013-06-12 34 views
1

我有PHPUnit的测试用例,但是当它运行其报告中没有断言。 有明确的断言。它看起来没有什么不同,我的其他文件。报告的测试数量是准确的,如果我添加删除测试但断言没有运行。这是怎么回事。没有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) 
+1

不知道这是造成你的问题,但它是不是一个好主意,做'setExpectedException(“例外”)'。失败的测试通过抛出'FailedTestException'来标记。您应该扩展'Exception'类,并期望反而取而代之。 – Schleis

+1

你如何运行你的测试?什么是控制台输出? – Cyprian

+0

其实是'@ expectedException'或'$这个 - > setExpectedException()'应被使用,所以它的正确 – zerkms

回答

0

感谢塞浦路斯我发现在每种情况下断言真实评论,这个问题是runTest方法runTest方法。看来我正在从phpunit测试用例中覆盖一个方法。重命名该方法解决了问题。