带有树屋的PHP单元运行示例

时间:2019-06-20 02:47:59

标签: php phpunit

嘿,我是PHPUNIT和php的新手,并且在树屋课程中逐步遵循了一般的编码和即时消息,但是我被困住了,我希望能得到一些帮助。这是我文件中的一些详细信息。

~/Documents/Testing/src/email.php

final class Email
{
    private $email;

    private function __construct(string $email)
    {
        $this->ensureIsValidEmail($email);

        $this->email = $email;
    }

    public static function fromString(string $email): self
    {
        return new self($email);
    }

    public function __toString(): string
    {
        return $this->email;
    }

    private function ensureIsValidEmail(string $email): void
    {
        if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
            throw new InvalidArgumentException(
                sprintf(
                    '"%s" is not a valid email address',
                    $email

~/Documents/Testing/test/EmailTest.php

use PHPUnit\Framework\TestCase;

final class EmailTest extends TestCase
{
    public function testCanBeCreatedFromValidEmailAddress(): void
    {
        $this->assertInstanceOf(
            Email::class,
            Email::fromString('user@example.com')
        );
    }

    public function testCannotBeCreatedFromInvalidEmailAddress(): void
    {
        $this->expectException(InvalidArgumentException::class);

        Email::fromString('invalid');
    }

    public function testCanBeUsedAsString(): void
    {
        $this->assertEquals(
            'user@example.com',
            Email::fromString('user@example.com')

这是在终端的phpunit中运行的命令:

./vendor/bin/phpunit --bootstrap vendor/autoload.phptests/EmailTest

这是收到错误

  

致命错误:未捕获PHPUnit \ Runner \ Exception:在“ tests / EmailTest.php”中找不到类“ tests / EmailTest”。在/Users/dwayneclarkjr/Documents/Testing/vendor/phpunit/phpunit/src/Runner/StandardTestSuiteLoader.php:99中   堆栈跟踪:

     

#0 /Users/dwayneclarkjr/Documents/Testing/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php(157):PHPUnit \ Runner \ StandardTestSuiteLoader-> load('tests / EmailTest','tests / EmailTest ...')

     

#1 /Users/dwayneclarkjr/Documents/Testing/vendor/phpunit/phpunit/src/Runner/BaseTestRunner.php(105):PHPUnit \ Runner \ BaseTestRunner-> loadSuiteClass('tests / EmailTest','')< / p>      

#2 /Users/dwayneclarkjr/Documents/Testing/vendor/phpunit/phpunit/src/TextUI/Command.php(183):PHPUnit \ Runner \ BaseTestRunner-> getTest('tests / EmailTest','',Array )

     

#3 /Users/dwayneclarkjr/Documents/Testing/vendor/phpunit/phpunit/src/TextUI/Command.php(162):PHPUnit \ TextUI \ Command-> run(Array,true)

0 个答案:

没有答案