在YAML文件中测试配置的测试位置

问题描述 投票:3回答:1

我正在Symfony(版本4.2.3)中开发一个应用程序,并使用Sonata项目以及API Platform中的一些捆绑包。我们有4个不同的用户角色,具有不同的特权。 API是只读的,应该由ROLE_USER访问,但ROLE_USER不能访问管理区域。其他角色应该访问管理区域。

我在文件config/packages/security.yaml中设置了防火墙和访问控制路径,创建了我的自定义安全处理程序VoterSecurityHandler并在config/packages/sonata_admin.yaml中使用它:

sonata_admin:
    security:
        handler: sonata.admin.security.handler.voter

安全处理程序在config/services.yaml中注册:

sonata.admin.security.handler.voter:
    class: App\Security\Handler\VoterSecurityHandler
    arguments: ["@security.authorization_checker", ['ROLE_SUPER_ADMIN']]

我使用LiipFunctionalTestBundle编写测试并为不同的用户提供数据夹具,以检查他们的权限是否得到妥善处理。

我正在尝试遵循最佳实践并将整个应用程序结构从src/映射到tests/目录。因为我有src/Security/Handler/VoterSecurityHandler.php我创造了tests/Security/Handler/TestVoterSecurityHandler.php

然而,VoterSecurityHandler应该管理奏鸣曲管理员的权限,我实际上是在测试config/packages/security.yaml中的配置设置。

将所有测试放在上面提到的课程中感觉不对,但是我想知道我应该在哪里进行这种“冒烟测试”?

我的问题: 我在哪里测试测试配置在YAML文件中?

php symfony yaml sonata phpunit-testing
1个回答
1
投票

好的做法是将测试文件放在与src相同的架构下,但这并不意味着你不能编写其他测试文件。 如果你没有控制器,直接把它放在测试中,并根据你的需要命名(FirewallTest?)

我个人使用专门的功能测试,测试不同角色的不同路线,只检查我是否得到403/200。

正如你在documentation中看到的,他们将文件直接置于测试中:tests/ApplicationAvailabilityFunctionalTest.php

© www.soinside.com 2019 - 2024. All rights reserved.