spinen / spinen-php-web-tester
此包已被废弃且不再维护。未建议替代包。
PHP网站的简单测试器。
0.1.2
2016-09-15 15:02 UTC
Requires
- php: >=5.6.0
- laravel/framework: 5.3.*
- symfony/dom-crawler: ^3.1
- symfony/process: ^3.1
Requires (Dev)
- fzaninotto/faker: ^1.6
- nesbot/carbon: ^1.21
- phpunit/phpunit: ~5.4
- psy/psysh: 0.7.*
- symfony/var-dumper: 3.1.*
This package is auto-updated.
Last update: 2020-08-15 01:48:31 UTC
README
我们希望有一个与Laravel非常相似的测试框架,用于在基本的PHP网站上运行验收测试。这个框架是为了帮助一个大学课程学习动态内容中的TDD而构建的。我们希望使用Laravel在“基础”部分中的约束,但他们不再将代码分割到只读的Illuminate存储库中。我们只要求Laravel框架来获取这些约束,但这样会引入许多包。因此,只在该包的dev部分中要求此包。
致谢
代码中有很大一部分是来自 PageAssertions
类,该类是从Laravel的 InteractsWithPages
类直接复制粘贴过来的。我们本想直接使用这个类,但它过度依赖于Laravel的引导,所以我们自己编写了一个类,并只复制了我们可以重用的断言。
安装
composer require --dev spinen/spinen-php-web-tester
用法
您可以选择扩展我们提供的抽象类,或者使用提供功能的特质。
- 通过扩展
Spinen\SimplePhpTester\TestCase
以获得对测试的访问。 - 通过在测试文件中使用
use
Spinen\SimplePhpTester\Browser
和Spinen\SimplePhpTester\PageAssertions
来混入测试。
配置
测试假设您的Web文件位于名为 public
的目录中。如果不是这种情况,您有三种选择...
- 在测试类中添加一个名为
$web_root
的受保护属性,其名称为目录的名称(例如,protected $web_root = 'web';
)。 - 使用相对于运行phpunit的目录的相对目录调用
setWebRoot
(例如,$this->setWebRoot('web');
)。 - 在测试类中添加一个名为
determinedFullPath
的受保护方法,该方法构建测试脚本所在目录的完整路径。
断言
以下是提供的断言列表...
- assertPageLoaded
- dontSee
- dontSeeElement
- dontSeeInElement
- dontSeeInField
- dontSeeIsChecked
- dontSeeIsSelected
- dontSeeLink
- dontSeeText
- see
- seeElement
- seeInElement
- seeInField
- seeIsChecked
- seeIsSelected
- seeLink
- seeText
示例测试
<?php use Spinen\SimplePhpTester\TestCase; class HomeTest extends TestCase { /** * @test */ public function it_loads_the_home_page() { $this->visit('/') // Could have used $this->visit('/index.php') ->assertPageLoaded(); } /** * @test */ public function it_has_the_expected_title_in_an_h1() { $this->visit('/') ->see('<h1>Some title</h1>'); } /** * @test */ public function it_has_the_the_correct_navigation_links() { $this->visit('/') ->seeLink('Home') ->seeLink('About Us') ->seeLink('Services') ->seeLink('Contact') ->dontSeeLink('Profile'); } }
故障排除
您可以在命令链上调用 dump
方法来打印出渲染的HTML。