功能测试 EasyAdmin 3 后端

Posted

技术标签:

【中文标题】功能测试 EasyAdmin 3 后端【英文标题】:Functional test EasyAdmin 3 backend 【发布时间】:2021-07-05 09:58:22 【问题描述】:

我想在 EasyAdmin 3 后端运行功能测试。

基本上,我想确保普通用户无法访问页面、查看字段或查看/运行他们不允许执行的操作。

最好的方法是什么?有什么我错过的有用资源吗?

【问题讨论】:

【参考方案1】:

EasyAdmin 3 Crud 控制器基本上是常规 Symfony 控制器,因此它们可以像任何其他 Symfony 控制器一样进行测试。

<?php
// tests/Controller/AdminControllerTest.php
namespace App\Tests\Controller;

use App\Repository\UserRepository;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;

class AdminControllerTest extends WebTestCase

    // ...

    public function testVisitingWhileLoggedIn()
    
        $client = static::createClient();
        $userRepository = static::$container->get(UserRepository::class);

        // retrieve the test user
        $testUser = $userRepository->findOneByEmail('john.doe@example.com');

        // simulate $testUser being logged in
        $client->loginUser($testUser);

        // test e.g. the admin page
        $client->request('GET', '/admin');
        $this->assertResponseStatusCodeSame(403);
    

EasyAdmin Crud 文档https://symfony.com/doc/current/bundles/EasyAdminBundle/crud.html

测试 Symfony https://symfony.com/doc/current/testing.html

【讨论】:

以上是关于功能测试 EasyAdmin 3 后端的主要内容,如果未能解决你的问题,请参考以下文章

Symfony - EasyAdmin - 从 AssociationField 中忽略添加和删除功能

EasyAdmin 添加自定义 Web 资产

EasyAdmin 3翻译错误,“翻译”字段的Doctrine类型为“4”,EasyAdmin尚不支持

EasyAdmin Bundle 创建的下拉菜单未在选择时关闭

EasyAdmin 3 - 具有嵌套形式的 CRUD

EasyAdmin 3 日期时间选择器时间格式