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 ];