【发布时间】:2019-07-16 12:50:55
【问题描述】:
我正在 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