becklyn / test-helpers
常用测试助手
1.3.0
2022-02-17 16:42 UTC
Requires
- php: >=7.4
- ext-json: *
- doctrine/orm: ^2.11.1
- symfony/process: ^v5.4.3 || ^v6.0.3
- symfony/translation: ^v5.4.3 || ^v6.0.3
Requires (Dev)
- becklyn/rad: ^8.6.0
- phpunit/phpunit: ^9.5.13
- roave/security-advisories: dev-master
- symfony/phpunit-bridge: ^v5.4.3 || ^v6.0.3
README
安装
composer require --dev becklyn/test-helpers
使用
该捆绑包包含各种基础测试,可以在捆绑包/库中使用。
模式验证测试
此测试接收一个目录列表和测试,以确保 doctrine 注释中没有映射错误。
使用
在您的 tests 目录中扩展它
tests/ValidateEntitySchemaTest:
use Becklyn\TestHelpers\Doctrine\SchemaValidationTest; class ValidateEntitySchemaTest extends SchemaValidationTest { }
有两个扩展点
-
getRootDir(): string必须返回您的应用程序根的绝对路径。默认情况下,它假定您的测试直接位于测试目录顶级。如果情况不是这样,请更改它。 -
getEntityDirs(): string[]必须返回存储带有映射信息的文件的绝对路径列表。默认设置为getRootDir()/src/Entity。
未找到翻译测试
此测试检查库中没有使用缺失的翻译。
您需要安装包
becklyn/translations-extractor,最好通过composer-bin-plugin完成composer bin test require becklyn/translations-extractor
翻译将从以下位置提取
- 实体中的验证约束注释(在类本身及其属性上)
AbstractType中的表单字段选项BackendTranslator的使用(Mayd-specific)- 在
@Callback方法中使用ExecutionContext(Interface) - Symfony: 控制器中的
$this->get('translator')->trans('foobar') - Symfony: 控制器中的
$this->get('translator')->transChoice('foobar') - Symfony: 控制器中的
$this->addFlash()和$this->getFlashBag()->add() - Symfony: 表单类型选择
- 自定义验证约束消息属性的默认消息
- 特殊类的特定构造函数参数
使用
在您的 tests 目录中扩展它
tests/ValidateEntitySchemaTest:
use Becklyn\PhpCs\Testing\NoMissingTranslationsTest; class ValidateTranslationsTest extends NoMissingTranslationsTest { }
有几个扩展点
getLocales(): string[]返回要验证的语言列表。默认设置为["de", "en"]。getDirectoriesWithUsages(): string[]返回使用翻译的代码的绝对路径(如表单、实体、模板等)。默认设置为["getRootDir()/src"]。getDirectoriesWithTranslations(): string[]: 返回存储翻译的绝对路径。期望翻译文件为yaml格式。默认设置为["getRootDir()/src/Resources/translations"]。getIgnoredKeys[]: (complex): 返回在验证缺失键时应忽略的键的列表。有关详细信息,请参阅以下内容。默认设置为[]。getRootDir(): string[]: 必须返回您的应用程序根的绝对路径。默认情况下,它假定您的测试直接位于测试目录顶级。如果情况不是这样,请更改它。getMockedFunctions(): string[]: 该项目/库定义的 twig 函数的名称。它们需要模拟,否则 Twig 将引发异常。getMockedFilters(): string[]: 该项目/库定义的 twig 过滤器的名称。它们需要模拟,否则 Twig 将引发异常。getMockedTests(): string[]: 该项目/库定义的 twig 测试的名称。它们需要模拟,否则 Twig 将引发异常。
定义忽略的键
忽略的键是一个索引数组,其中
- 键 是一个有效的正则表达式模式。*确保使其尽可能具体(例如,使用
^和$)。 - 值 是应用此忽略的域列表(
string[])。您可以选择传递true以在所有域中忽略它。
return [ "~^example\\..*$~" => ["form", "validators"], // ignore example.* in "form" and "validators" domain only // (i.e. will still be reported for "messages" for example) "~^second\\..*$~" => true, // ignore second.* in every domain ];