symfony5 - 功能测试 EasyAdmin 3 后端
问题描述
我想在 EasyAdmin 3 后端运行功能测试。
基本上,我想确保普通用户无法访问页面、查看字段或查看/运行他们不允许执行的操作。
最好的方法是什么?有没有什么有用的资源我错过了开始?
解决方案
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
推荐阅读
- laravel - 如何从 laravel 中现有的 Web 中间件登录中进行 api 身份验证
- c# - app.config 中不支持关键字“数据源”
- sql-server - 如果值为 NULL,则发送其他内容
- scheme - SICP(MIT-Scheme)平方根程序
- android - Retrofit 2 - 根据响应类型解析 JSON
- android - 如何将位图图像转换为我从 android 中的画布获取的文件格式
- php - 我想知道我附近的位置在哪个主要方向上
- swift - Swift 在将图像传递给另一个 ViewController 时打开 Optional 值时意外发现 nil
- javascript - 没有td内容的html表格tbody滚动分成多行
- html - 根据需要折叠表格列(最多最小宽度)以完全适合第一列中的文本