codeception/symfony1module

symfony 1.x 框架的模块

1.0.0 2015-04-30 22:57 UTC

This package is auto-updated.

Last update: 2024-09-13 10:34:35 UTC


README

Codeception 模块,用于与 Symfony 1.4 应用程序交互。

替换 symfony 的功能测试框架。授权功能使用 Doctrine 和 sfDoctrineGuardPlugin。使用本机 symfony 连接和测试类。在每次操作中提供额外的信息。

如果测试失败,则在 'log' 目录中存储最后显示的页面。

安装

composer.json

"require-dev": {
  "codeception/codeception": "~2.1",
  "codeception/symfony1module": "*"
}

状态

配置

  • app 必需 - 要测试的应用程序。在大多数情况下,它将是 'frontend'

公共属性

  • browser - sfBrowser 类的当前实例。

amLoggedAs

以 sfDoctrineGuardUser 登录。只需提供用户名。从 sfGuardUser 表中通过用户名获取用户。

  • param $name \Exception

amOnPage

打开页面。

  • param $page

click

点击链接或按钮并转到下一页。可以是链接文本、CSS选择器或xpath

  • param $link

clickSubmitButton

模拟点击表单的提交按钮。如果您通过 ->submitForm 操作填充表单,则不需要此操作。

  • param $selector

dontSee

检查当前页面是否不包含指定的文本。指定 CSS 选择器以匹配特定区域。

示例

<?php
$I->dontSee('Login'); // I can suppose user is already logged in
$I->dontSee('Sign Up','h1'); // I can suppose it's not a signup page
  • param $text
  • param null $selector

dontSeeCheckboxIsChecked

断言指定的复选框未选中。使用 CSS 选择器或 xpath 进行匹配。

示例

<?php
$I->dontSeeCheckboxIsChecked('#agree'); // I suppose user didn't agree to terms
$I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user didn't check the first checkbox in form.
  • param $selector

dontSeeLink

检查页面是否不包含指定的文本链接。指定 URL 以缩小结果。

示例

<?php
$I->dontSeeLink('Logout'); // I suppose user is not logged in
  • param $text
  • param null $url

see

检查当前页面是否包含指定的文本。指定 CSS 选择器以匹配特定区域。

示例

<?php
$I->see('Logout'); // I can suppose user is logged in
$I->see('Sign Up','h1'); // I can suppose it's a signup page
  • param $text
  • param null $selector

seeCheckboxIsChecked

断言指定的复选框被选中。使用 CSS 选择器或 xpath 进行匹配。

示例

<?php
$I->seeCheckboxIsChecked('#agree'); // I suppose user agreed to terms
$I->seeCheckboxIsChecked('#signup_form input[type=checkbox]'); // I suppose user agreed to terms, If there is only one checkbox in form.
  • param $selector

seeEmailReceived

检查是否至少发送了一封通过 Symfony 测试邮件发送器发送的电子邮件。

seeErrorInField

检查 Symfony1 表单中的无效值。匹配控制器中的第一个 sfForm 实例并返回 getErrorSchema() 值。指定应包含错误消息的字段。

  • param $field

seeErrorsInForm

执行 Symfony1 表单的验证。匹配控制器中的第一个 sfForm 实例并返回 getErrorSchema() 值。在调试中显示所有错误。

seeFormIsValid

执行 Symfony1 表单的验证。匹配控制器中的第一个 sfForm 实例并返回 isValid() 值。

seeLink

检查是否存在具有指定文本的链接。指定 URL 以匹配与此 URL 完全匹配的链接。

示例

<?php
$I->seeLink('Logout'); // matches <a href="#">Logout</a>
$I->seeLink('Logout','/logout'); // matches <a href="/logout">Logout</a>
  • param $text
  • param null $url

sendAjaxGetRequest

如果您的页面触发一个 AJAX 请求,您可以手动执行它。此操作发送带有指定参数的 GET AJAX 请求。

参见 ->sendAjaxPostRequest 中的示例。

  • param $uri
  • param $params

sendAjaxPostRequest

如果您的页面触发一个 AJAX 请求,您可以手动执行它。此操作发送带有指定参数的 POST AJAX 请求。可以传递额外的参数作为数组。

示例

假设通过点击复选框您触发了一个更新用户设置的 AJAX 请求。我们通过手动运行此 AJAX 请求来模拟此点击。

<?php
$I->sendAjaxPostRequest('/updateSettings', array('notifications' => true); // POST
$I->sendAjaxGetRequest('/updateSettings', array('notifications' => true); // GET
  • param $uri
  • param $params

signIn

使用 sfGuardAuth 登录用户。使用标准路径:/sfGuardAuth/signin 进行授权。提供用户名和密码。

  • param $username
  • param $password

signOut

登出操作通过触发'/logout' URL执行。

submitForm

提交页面上的表单。通过CSS或xpath选择器指定表单。将表单字段值作为数组填充。

跳过的字段将使用页面上的值填充。之后不需要点击'提交'按钮。此命令本身会触发表单的动作请求。

示例

<?php
$I->submitForm('#login', array('login' => 'davert', 'password' => '123456'));

对于示例注册表单

<form action="/sign_up">
    Login: <input type="text" name="user[login]" /><br/>
    Password: <input type="password" name="user[password]" /><br/>
    Do you agree to out terms? <input type="checkbox" name="user[agree]" /><br/>
    Select pricing plan <select name="plan"><option value="1">Free</option><option value="2" selected="selected">Paid</option></select>
    <input type="submit" value="Submit" />
</form>

我可以这样写

<?php
$I->submitForm('#userForm', array('user' => array('login' => 'Davert', 'password' => '123456', 'agree' => true)));

注意,定价计划将设置为已付费,因为它已经在页面上被选中。

  • param $selector
  • param $params