gpt4 book ai didi

PHPUnit:尝试@cover 或@use 不存在的方法

转载 作者:可可西里 更新时间:2023-11-01 12:25:50 26 4
gpt4 key购买 nike

我正在学习如何使用 PHPUnit 4.3.5/PHP 5.5.14 进行单元测试。一切顺利,直到我尝试获取代码覆盖率。我收到此错误:“在尝试获取代码覆盖率时尝试@cover 或@use 不存在的方法“MyClass::__construct”。我尝试了其他 SO 答案但无法修复它。任何想法我做错了什么? 谢谢!

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

最佳答案

如果您希望 @covers 注释与命名空间 use 运算符一起使用,您可能会遇到同样的错误。

以下代码将不起作用:

<?php

namespace MyCompany\MyBundle\Test\UnitTest\Service;

use MyCompany\MyBundle\Service\ClassToTest;

class MyAwesomeTest
{
/**
* @covers ClassToTest::someMethod()
*/
public function testSomeMethod()
{
// do your magic
}
}

像 PHPStorm 这样的智能 IDE 解决了 ClassToTest::someMethod() 注释,如果你 CTRL+click 它但是 PHPUnit 会给你一个 Trying to @cover or @use not existing method "ClassToTest::someMethod". 错误。

这里有一个拉取请求:https://github.com/sebastianbergmann/phpunit/pull/1312

作为解决方法,只需使用完整的类名:

<?php

namespace MyCompany\MyBundle\Test\UnitTest\Service;

use MyCompany\MyBundle\Service\ClassToTest;

class MyAwesomeTest
{
/**
* @covers \MyCompany\MyBundle\Service\ClassToTest::someMethod()
*/
public function testSomeMethod()
{
// do your magic
}
}

关于PHPUnit:尝试@cover 或@use 不存在的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27605392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com