我在“DefaultControllerTest”中有一些公共函数。
但是这些公共函数中有一些共同的代码 - 例如,我测试了几个不同的页面以确保出现一些文本。因此代码类似。
因此,我将公共代码放入一个私有函数中,然后我可以从每个公共函数调用 - 来自每个测试。
但是我收到了这个错误:
Test method "testHeader" in test class "MyApp\MyBundle\Tests\Controller\DefaultControllerTest" is not public.
testHeader
是我从每个公共函数测试的私有函数。
那么如何在这个类中拥有一个私有函数呢?
答案 0 :(得分:8)
以' test'开头的功能从PHPUnit自动调用,因此需要公开。
如果您编辑该功能的名称,使其不再以' test'开头,则不会直接从PHPUnit调用它,并且错误消息将消失。
答案 1 :(得分:0)
为了更彻底地解释,可以通过两种方式将测试类中的函数视为一种测试方法(与测试代码所调用的支持私有函数/方法相反)。他们是:
1)在方法的doc块中使用@test作为注释;
或
2)以'test'开头的方法命名
这些测试方法应该是公开的。
极简文档块将是:
/**
* @test
*/
将任何方法标记为测试,无论其名称如何。