Не могу вызвать пространство имен с ключевым словом use - PullRequest
0 голосов
/ 05 ноября 2018

Я изучаю PHPUnit, но в самом начале что-то тривиальное заставило меня споткнуться.

это файл PHP квитанции внутри папки src -

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.

1 Ответ

0 голосов
/ 06 ноября 2018

Я предполагаю, что вы используете Composer. Если это так, то просто включите phpunit в ваши composer.json требования к разработке, например:

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

После установки вы получаете папку bin внутри папки vendor с phpunit, автоматически загруженной и готовой к работе. Вы можете запустить его с $ php src/vendor/bin/phpunit.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...