pluf / test
A pluf 模拟对象和测试工具
Requires
- phpunit/phpunit: 7.x
- pluf/core: 6.x
- dev-master
- 6.x-dev
- 6.0.23
- 6.0.22
- 6.0.21
- 6.0.20
- 6.0.19
- 6.0.18
- 6.0.17
- 6.0.16
- 6.0.15
- 6.0.14
- 6.0.13
- 6.0.12
- 6.0.11
- 6.0.10
- 6.0.9
- 6.0.8
- 6.0.7
- 6.0.6
- 6.0.5
- 6.0.0
- 5.13.x-dev
- 5.13.1
- 5.13.0
- 5.12.7
- 5.12.6
- 5.12.4
- 5.12.3
- 5.12.2
- 5.12.1
- 5.12.0
- 5.11.16
- 5.11.15
- 5.11.14
- 5.11.13
- 5.11.12
- 5.11.11
- 5.11.10
- 5.11.9
- 5.11.8
- 5.11.7
- 5.11.6
- 5.11.5
- 5.11.4
- 5.11.3
- 5.11.2
- 5.11.1
- 5.11.0
- 5.10.2
- 5.10.1
- 5.10.0
- 5.9.6
- 5.9.5
- 5.9.4
- 5.9.3
- 5.9.2
- 5.9.1
- 5.9.0
- 5.8.6
- 5.8.5
- 5.8.4
- 5.8.3
- 5.8.2
- 5.8.1
- 5.8.0
- 5.7.2
- 5.7.1
- 5.7.0
- 5.6.0
- 5.5.3
- 5.5.2
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.0
- 5.2.0
- 5.1.2
- 5.1.1
- 5.1.0
- 5.0.1
- 5.0.0
- 4.0.15
- 4.0.14
- 4.0.13
- 4.0.12
- 4.0.11
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 3.0.11
- 3.0.8
- 3.0.7
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.0
- 2.1.10
- 2.1.9
- 2.1.7
- dev-develop
- dev-release/6.0.20
- dev-feature/psr4
This package is auto-updated.
Last update: 2024-09-22 08:23:31 UTC
README
本教程假设您使用 PHP 7.3 或 PHP 7.4。您将学习如何编写简单的单元测试以及如何下载和运行 PlufTest。
PlufTest 基于 PHPUnit 8。
安装
您可以使用 Composer 将 Pluf/Test 添加为项目本地、特定项目、开发时的依赖项。
➜ composer require --dev pluf/test ^6
➜ ./vendor/bin/pluftest --version
Pluf/Test 6.0.0 by pluf.ir and contributors.
上述示例假设 composer 已添加到您的 $PATH。
您的 composer.json 应该看起来像这样
{
"autoload": {
"classmap": [
"src/"
]
},
"require-dev": {
"pluf/test": "^9"
}
}
测试代码
假设有一段代码
src/Email.php
内容如下
<?php
declare(strict_types=1);
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
)
);
}
}
}
创建一个文件
tests/EmailTest.php
并创建测试类
<?php
declare(strict_types=1);
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')
);
}
}
测试就绪
注意:不要在命名空间中放置测试。
运行测试
./vendor/bin/phpunit --bootstrap vendor/autoload.php tests/EmailTest
PHPUnit 8.0.0 by Sebastian Bergmann and contributors.
... 3 / 3 (100%)
Time: 70 ms, Memory: 10.00MB
OK (3 tests, 3 assertions)
使用 --bootstrap vendor/autoload.php 指示 PHPUnit 命令行测试运行器在运行测试之前包含 vendor/autoload.php。
tests/EmailTest 指示 PHPUnit 命令行测试运行器执行在 tests/EmailTest.php 中声明的 EmailTest 类的测试。
使用 tests 代替 tests/EmailTest 将指示 PHPUnit 命令行测试运行器执行 tests 目录中所有在 *Test.php 源代码文件中声明的测试。
贡献
如果您想为 Pluf 贡献,请阅读 README 和 CONTRIBUTING 文档。
以下是最重要的指南描述:
所有代码贡献 - 包括具有提交访问权限的人的贡献 - 必须通过拉取请求,并由核心开发者审核后才能合并。这是为了确保对所有代码进行适当的审查。
创建项目分支,创建功能分支,并向我们发送拉取请求。
为了确保代码库的一致性,您应该确保代码遵循 PSR-2 编码标准。