如何在无类php文件上使用PHPUnit Skeleton Generator?

时间:2014-10-09 22:11:40

标签: php unit-testing phpunit automated-tests code-generation

我听说过PHPUnit能够自动生成本文的基本测试文件:http://www.sitepoint.com/advanced-phpunit-testing-annotations-and-mocking/

(请注意,PHPUnit-skelgen现在是PHPUnit项目其余部分的一个sepparate实用程序,它的源代码可以在这里找到:https://github.com/sebastianbergmann/phpunit-skeleton-generator

如果我在下面的代码中使用phpunit-skelgen:

<?php

class TestClass {

    /**
     * @assert (1, 2) == 3
     */
    function add($a, $b) {
        return $a + $b;
    }
}
?>

通过运行phpunit-skelgen generate-test TestClass,我接受了以下测试方法(以及通常的phpunit样板文件):

/**
 * Generated from @assert (1, 2) == 3.
 *
 * @covers TestClass::add
 */
public function testAdd()
{
    $this->assertEquals(
        3,
        $this->object->add(1, 2)
    );
}

我的问题是,有没有可能让phpunit-skelgen为没有类的php文件创建测试?例如,我有一个相当大的文件,其中有几个全局动作函数我想让phpunit-skelgen创建测试,但是如果没有将我现有的代码包装在一个类中,我就没有办法这样做。


编辑:如果我尝试在具有函数但没有类的php文件上运行phpunit-skelgen,这是输出:

theguy@workpc ~/Projects/PHPUnitSamples $ phpunit-skelgen generate-test noClass
phpunit-skelgen 2.0.1 by Sebastian Bergmann.




[RuntimeException]                                                                    
Could not find class "noClass" in "/home/perry/Projects/PHPUnitSamples/noClass.php".  



generate-test [--bootstrap="..."] class [class-source] [test-class] [test-source]

有人有任何建议吗?

另外,我注意到最近phpunit-skelgen的文档非常缺乏。有没有人知道一些好的教程或手册或者自从phpunit-skelgen被移入它自己的独立项目以来已经写过的东西?

0 个答案:

没有答案