nicolasguilloux/phpunit-dependency-injection-bundle

一个神奇的扩展包

v1.1.0 2022-06-13 12:07 UTC

This package is auto-updated.

Last update: 2024-09-13 17:20:23 UTC


README

phpunit dependency injection bundle badge badge maintainability contributions welcome brightgreen license MIT blue PHP 7 Symfony 4%2B black Symfony 5%2B black

简短描述

目录

1. 安装

执行composer命令以安装扩展包

composer require nicolasguilloux/phpunit-dependency-injection-bundle --dev

现在添加测试环境的配置,并根据需要进行更改

phpunit_dependency_injection:
    tests_namespace: 'App\Tests'

现在,只需在相应的测试中的setUp方法中实现该特质即可。

注意:请注意,该类仍然是TestCase,因此您无法使用构造函数注入依赖项。这正是Required注解/属性发挥作用的地方。查看Symfony的文档

use NicolasGuilloux\PhpunitDependencyInjectionBundle\TestCase\AutowiringTestTrait;
use Psr\Log\LoggerInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Contracts\Service\Attribute\Required;

final class RandomTest extends KernelTestCase
{
    use AutowiringTestTrait;

    #[Required]
    public LoggerInterface $logger;

    public function setUp(): void
    {
        parent::setUp();

        self::bootKernel();
        $this->autowire(self::getContainer());
    }

    public function testSomething(): void
    {
        self::assertInstanceOf(LoggerInterface::class, $this->logger);
    }
}

2. 动机

查看动机文章

3. 文档

3.1. 配置

4. 版本管理

phpunit-dependency-injection-bundle遵循语义版本控制。简而言之,该方案是MAJOR.MINOR.PATCH,其中1. MAJOR在发生破坏性更改时增加,2. MINOR在以向后兼容的方式添加新功能时增加,3. PATCH在以向后兼容的方式修复错误时增加。

低于1.0.0的版本被认为是实验性的,并且可能在任何时候发生破坏性更改。

5. 贡献

欢迎贡献!有多种贡献方式,我们非常感谢。以下是一些主要方式:

  • 错误报告:虽然我们力求提供高质量的软件,但错误仍然可能发生,我们无法修复我们不知道的问题。因此,即使您不确定或有疑问,也请报告。实际上,问题可能表明文档仍然可以改进!

  • 功能请求:您有当前API未涵盖的使用场景吗?希望提出更改建议或添加某些内容?我们将非常乐意阅读并开始讨论,以尝试找到最佳可能的解决方案。

  • 拉取请求:希望贡献代码或文档?我们将非常乐意!如果您需要帮助开始,GitHub有关于拉取请求的文档。我们使用“fork and pull”模型,其中贡献者将更改推送到他们的个人分支,然后创建拉取请求到主存储库。请将您的拉取请求针对master分支。

提醒一下,所有贡献者都应遵守我们的行为准则

6. 许可证

phpunit-dependency-injection-bundle是在MIT许可证下分发的。

有关详细信息,请参阅LICENSE

7. 开发

您可能使用Docker和docker-compose来开发项目。请查看以下命令。

# Start the project
docker-compose up -d

# Install dependencies
docker-compose exec application composer install

# Run tests
docker-compose exec application bin/phpunit

# Run a bash within the container
docker-compose exec application bash