lee-kevin/symfony1module

针对 symfony 1.x 框架的固定模块

2.0.1 2015-11-30 18:52 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:18:42 UTC


README

与 Symfony 1.4 应用交互的 Codeception 模块。

替换 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