首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHPUnit:存根方法未定义

PHPUnit:存根方法未定义
EN

Stack Overflow用户
提问于 2010-01-09 07:00:07
回答 1查看 8K关注 0票数 17

我一定漏掉了什么。我试图在PHPUnit中的一个类上存根方法,但是当我在模拟对象上调用该方法时,它告诉我该方法是未定义的。

存根的示例类:

代码语言:javascript
复制
namespace MyApp;

class MyStubClass 
{
   public function mrMethod()
   {
     // doing stuff
   }   
}

要将其存根,我写道:

代码语言:javascript
复制
// specifying all getMock() args to disable calling of class __construct()
$stub = $this->getMock('MyStubClass', array(), array(), 'MockMyStubClass', false, false, false);
$stub->expects($this->any())
     ->method('mrMethod')
     ->will($this->returnValue('doing stuff'));

但是在调用存根方法时,我得到了一个异常:

代码语言:javascript
复制
$stub->mrMethod();
//PHP Fatal error:  Call to undefined method MockMyStubClass::mrMethod()

我使用的是PHPUnit 3.4.3和PHP5.3.0。

我注意到的另一件小事是,如果在getMock()方法中指定名称空间会因为双重名称空间而导致类加载异常:

代码语言:javascript
复制
$stub = $this->getMock('MyApp\MyStubClass');
// Fatal error:  Class 'MyApp\MyApp\MyStubClass' not found

这让我觉得很奇怪( getmock()不接受以反斜杠开头的名称空间)。我能想到的唯一原因可能是因为这个类注册了一个自动加载器?

有什么想法吗?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2031385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档