PHPUnit:尝试@cover或@use not existing方法

PHPUnit:尝试@cover或@use not existing方法,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,我正在学习如何使用phpunit4.3.5/php5.5.14进行单元测试。在我试图获得代码覆盖率之前,一切都很顺利。我收到此错误:“尝试获取代码覆盖率时尝试@cover或@use not existing method”MyClass::\uu construct”。我尝试了其他SO答案,但无法修复。有什么想法我做错了什么吗?谢谢 /** * Test constructor. * @covers MyClass::__construct * @group MyClassTest */

我正在学习如何使用phpunit4.3.5/php5.5.14进行单元测试。在我试图获得代码覆盖率之前,一切都很顺利。我收到此错误:“尝试获取代码覆盖率时尝试@cover或@use not existing method”MyClass::\uu construct”。我尝试了其他SO答案,但无法修复。有什么想法我做错了什么吗?谢谢

/**
 * Test constructor.
 * @covers MyClass::__construct
 * @group MyClassTest
 */
public function test_Can_Create_MyClass_Instance() {
    $this->assertInstanceOf('MyClass', $this->_myClass);
}

如果您的类确实实现了
\u构造
方法,那么问题是找不到该类本身。请开始删除@covers注释,并检查该类是否可以加载。例如,请尝试:
var\u dump(class\u exists('MyClass'));
在测试内部(在我认为不会通过的断言之前)

在注释中,通常在以字符串形式传递类名时,应始终使用其完整的名称空间名称引用该类:

\MyClass
\MyNamespace\MyClass

如果希望
@covers
注释与名称空间use运算符一起使用,则可能会出现相同的错误

以下代码将不起作用:


你的类真的有一个_构造方法吗?我已经检查过了,只有当没有构造函数时才会发生错误。在这种情况下,你不能覆盖它。是的,MyClass(扩展MyBaseClass)有一个_构造方法,我初始化一些属性,然后调用父::_构造($params);也许这与问题有关?MyBaseClass还有它的_构造($params)方法。谢谢你!正如你所说更改了名称,现在它工作正常了!