【问题标题】:Can I have private functions in a phpunit class?我可以在 phpunit 类中有私有函数吗?
【发布时间】:2015-02-13 06:00:26
【问题描述】:

我在“DefaultControllerTest”中有一些公共函数。

但是这些公共函数中有一些公共代码——例如,我测试了几个不同的页面以确保出现一些文本。所以代码是类似的。

所以我将公共代码放入一个私有函数中,然后我可以从每个公共函数(从每个测试)调用它。

但我收到此错误:

Test method "testHeader" in test class "MyApp\MyBundle\Tests\Controller\DefaultControllerTest" is not public.

testHeader 是我从每个公共函数中测试的私有函数。

那么我怎样才能在这个类中拥有一个私有函数呢?

【问题讨论】:

  • 函数名以'test'开头,给函数起不同的名字
  • 谢谢。做到了。我认为这可能很简单,我认为这可能是一个注释……但这很有意义。干杯!!
  • 酷 .. 我只是为此输入答案 :)

标签: php phpunit


【解决方案1】:

以 'test' 开头的函数会自动从 PHPUnit 调用,因此需要公开。

如果你编辑函数名使其不再以'test'开头,它就不会直接从PHPUnit调用,错误信息也会消失。

【讨论】:

    【解决方案2】:

    为了更彻底地解释一下,测试类中的函数可以通过两种方式被视为测试方法(与测试代码调用的支持私有函数/方法相反)。它们是:

    1) 在方法的 doc 块中使用 @test 作为注解;

    2) 以'test'开头的方法命名

    而且这些测试方法应该是公开的。

    极简主义的文档块是:

    /**
    * @test
    */
    

    将任何方法标记为测试,无论它的名称是什么。

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 2011-11-05
      • 2016-01-30
      • 1970-01-01
      • 1970-01-01
      • 2017-04-11
      相关资源
      最近更新 更多