savvywombat / laravel-assert-selector-contains
使用CSS选择器表达式进行目标内容断言
1.3.1
2023-11-23 06:55 UTC
Requires
- php: ^8.1
- ext-dom: *
- ext-libxml: *
- illuminate/support: ^9.29.0|^10.0
- symfony/css-selector: ^6.1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.14.0
- orchestra/testbench: ^7.7.0|^8.0
- phpunit/phpunit: ^9.5.0|^10.0
- squizlabs/php_codesniffer: ^3.7.0
README
使用CSS选择器表达式进行目标内容断言。
Laravel的内置assertSee
很有用,但有一些限制
- 它会将字符串与整个文档进行匹配,可能会产生假阳性。
- 很难断言特定项目是否设置正确(页面标题、输入标签等)
- 当断言失败时,它会在控制台输出整个HTML文档。
此包提供了一组额外的断言,这些断言可在Laravel的TestResponse
上使用,以帮助针对特定元素/属性并在失败时改进消息。
assertSelectorExists($selector)
assertSelectorDoesNotExist($selector)
assertSelectorContains($selector, $value)
assertSelectorDoesNotContain($selector, $value)
assertSelectorAttributeExists($selector, $attribute)
assertSelectorAttributeDoesNotExist($selector, $attribute)
assertSelectorAttributeEquals($selector, $attribute, $value)
assertSelectorAttributeDoesNotEqual($selector, $attribute, $value)
assertSelectorAttributeContains($selector, $attribute, $value)
assertSelectorAttributeDoesNotContain($selector, $attribute, $value)
因此,如果您想确保文档标题设置正确
$response->assertSelectorContains('title', 'Welcome');
如果您想断言为特定表单输入设置了标签
$response->assertSelectorExists('label[for=input-id]');
或者如果特定输入已经设置了正确的初始值
$response->assertSelectorAttributeEquals('input[name=display_name]', 'value', 'SavvyWombat');
安装
此包可通过Composer使用。
composer require --dev savvywombat/laravel-assert-selector-contains
用法
namespace Tests\Feature; use SavvyWombat\LaravelAssertSelectorContains\AssertsWithSelectors; use Tests\TestCase; class ExampleTest extends TestCase { use AssertsWithSelectors; public function testDocumentTitleIsCorrect(): void { $response = $this->get('/'); $response->assertSelectorContains('title', 'Welcome'); } }
致谢
本包受到Liam Hammett博客文章的启发
支持
请使用GitHub问题跟踪器报告问题。您也可以fork仓库并提交pull request。
许可证
本包根据MIT许可证(MIT)授权。