【问题标题】:How to use PHPUnit Skeleton Generator on classless php files?如何在无类 php 文件上使用 PHPUnit Skeleton Generator?
【发布时间】: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


    【解决方案1】:

    文档可能很少,但第一行非常清楚目的:

    phpunit-skelgen 是一个可以从生产代码生成骨架测试类的工具,反之亦然。

    (添加了突出显示)

    所以答案是,这是不可能的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-12
      • 2016-04-24
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2013-10-27
      • 2013-01-20
      相关资源
      最近更新 更多