我听说过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被移入它自己的独立项目以来已经写过的东西?