【发布时间】:2014-12-04 23:52:05
【问题描述】:
我从这篇文章中听说了 PHPUnit 能够自动生成基础测试文件:http://www.sitepoint.com/advanced-phpunit-testing-annotations-and-mocking/
(请注意,PHPUnit-skelgen 现在是与 PHPUnit 项目的其余部分分开的实用程序,它的源代码可以在这里找到: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 被移到它自己的单独项目中以来已经写过的东西?
【问题讨论】:
标签: php unit-testing phpunit automated-tests code-generation