【发布时间】:2013-07-19 14:10:45
【问题描述】:
public function __call($method, $args)
{
if ( ! in_array($method, $this->validMethods))
{
throw new \BadMethodCallException("Not a valid method: {$method}");
}
}
如何测试__call 方法以确保$method 在我的有效方法列表中?现在这就是我所做的;
/**
* @covers World\Transmission::__call()
* @expectedException BadMethodCallException
* @expectedExceptionMessage Not a valid method: foo
*/
public function test__callInvalidRequest()
{
$m = m::mock('World\\Transmission', array($this->config))->makePartial();
$m->foo(array('foo'));
}
我得到的错误是call_user_func_array()的无尽痕迹。
Maximum function nesting level of '100' reached, aborting!.
...
【问题讨论】:
-
你班上有什么:
World\Transmission -
如果删除
$m->foo(array('foo'));,仍然达到100嵌套级别? -
现在会抛出
Failed asserting that exception of type "BadMethodCallException" is thrown.。 -
你使用
phpunit测试框架吗?