我可以在phpunit类中拥有私有函数吗?

时间:2014-12-15 07:11:23

标签: php phpunit

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

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

因此,我将公共代码放入一个私有函数中,然后我可以从每个公共函数调用 - 来自每个测试。

但是我收到了这个错误:

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

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

那么如何在这个类中拥有一个私有函数呢?

2 个答案:

答案 0 :(得分:8)

以' test'开头的功能从PHPUnit自动调用,因此需要公开。

如果您编辑该功能的名称,使其不再以' test'开头,则不会直接从PHPUnit调用它,并且错误消息将消失。

答案 1 :(得分:0)

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

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

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

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

极简文档块将是:

/**
* @test
*/

将任何方法标记为测试,无论其名称如何。