spinen/spinen-php-web-tester

此包已被废弃且不再维护。未建议替代包。

PHP网站的简单测试器。

0.1.2 2016-09-15 15:02 UTC

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

用法

您可以选择扩展我们提供的抽象类,或者使用提供功能的特质。

  1. 通过扩展 Spinen\SimplePhpTester\TestCase 以获得对测试的访问。
  2. 通过在测试文件中使用 use Spinen\SimplePhpTester\BrowserSpinen\SimplePhpTester\PageAssertions 来混入测试。

配置

测试假设您的Web文件位于名为 public 的目录中。如果不是这种情况,您有三种选择...

  1. 在测试类中添加一个名为 $web_root 的受保护属性,其名称为目录的名称(例如,protected $web_root = 'web';)。
  2. 使用相对于运行phpunit的目录的相对目录调用 setWebRoot(例如,$this->setWebRoot('web');)。
  3. 在测试类中添加一个名为 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。