【问题标题】:Can't invoke namespace with 'use' keyword无法使用“use”关键字调用命名空间
【发布时间】:2018-11-04 21:40:55
【问题描述】:

我正在学习 PHPUnit,但一开始,一些微不足道的事情让我跌跌撞撞。

这是 src 文件夹中的收据 PHP 文件 -

namespace TDD;

class Receipt {
    public function total(array $items = []) {
        return array_sum($items);
    }
}

这就是测试文件夹中的 ReceiptTest.php 文件 -

namespace TDD\Test;
require dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR  . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php';

use PHPUnit\Framework\TestCase;
use TDD\Receipt;

class ReceiptTest extends TestCase {
    public function testTotal() {
        $Receipt = new Receipt();
        $this->assertEquals(
            14,
            $Receipt->total([0,2,5,8]),
            'When summming the total should equal 15'
        );
    }
}

这就是我运行 vendor\bin\phpunit 时的错误日志 -

PHPUnit 7.0.0 by Sebastian Bergmann and contributors.

E                                                                   1 / 1 (100%)

Time: 98 ms, Memory: 4.00MB

There was 1 error:

1) TDD\Test\ReceiptTest::testTotal
Error: Class 'TDD\Receipt' not found

C:\xampp\htdocs\PHPUnit\tests\ReceiptTest.php:10

ERRORS!
Tests: 1, Assertions: 0, Errors: 1.

【问题讨论】:

    标签: unit-testing namespaces phpunit


    【解决方案1】:

    我假设您使用 Composer。如果是这样,那么只需将 phpunit 包含到您的 composer.json 开发要求中,如下所示:

    "require-dev": {
        "phpunit/phpunit": "^7.0"
    },
    ...
    

    安装后,您会在vendor 文件夹内获得一个bin 文件夹,其中phpunit 已自动加载并准备就绪。您可以使用$ php src/vendor/bin/phpunit 运行它。

    【讨论】:

      【解决方案2】:

      首先你在主项目文件夹中的 composer.json 文件应该是这样的:

      {
          "autoload": {
              "classmap": [
                  "src/"
              ]
          },
          "require-dev": {
              "phpunit/phpunit": "^9"
          }
      }
      

      然后在终端运行 composer dump-autoload 以创建新的自动加载文件。 在此尝试运行测试 vendor/bin/phpunit 测试

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-06
        • 2023-03-24
        • 1970-01-01
        • 2011-08-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多