【发布时间】:2016-06-12 10:07:39
【问题描述】:
我的 PHPunit 测试出现以下错误
Warning: Invalid callback Vc_Manager::__sleep, cannot access private method Vc_Manager::__sleep()
这是因为函数 __sleep() 是私有的,而类的 __contruct() 函数也是私有的。
如何在我的 phpunit 测试中使用该函数而不将函数公开?
完整代码:
require_once('../splitTestNew.php');
class SplitTestTest extends PHPUnit_Framework_TestCase
{
public function setUp(){
}
public function tearDown(){ }
/**
* @runInSeparateProcess
*/
public function testDefaultParameterValues()
{
$obj = new BSSplitTest();
$this->assertTrue($obj->params['A'] == 50);
$this->assertTrue($obj->params['B'] == 50);
$this->assertTrue($obj->params['SplitCookieA'] == 'ACounter');
$this->assertTrue($obj->params['SplitCookieB'] == 'BCounter');
$this->assertTrue($obj->params['TableA'] == 'counter_a');
$this->assertTrue($obj->params['TableB'] == 'counter_b');
}
【问题讨论】:
-
在测试我与应用程序中的其他模块共享代码的库时,我使用反射 (secure.php.net/manual/en/book.reflection.php) 来验证内部变量或函数进程,以确保我的库代码按预期工作。然后我的应用程序测试使用公共方法与库一起工作。
标签: php function class phpunit private