2015-08-04 4 views
2

Я настраиваю код для проверки моего приложения Yii. Я наткнулся на «YiiBridge», и я не могу понять, почему это требуется, так как я создал простой приемочный тест, и он отлично работал. Мой тестовый пример:Является ли мост Yii для кодирования необходимым для тестирования приложений Yii и как обойти ограничения phpBrowser

<?php 
    $I = new AcceptanceTester($scenario); 
    $I->wantTo('ensure that the frontpage works'); 
    $I->amOnPage('/'); 
    $I->see('LOGIN'); 
    ?> 

Будет более сложные случаи испытания требуют YiiBridge?

Также я отметил, что приемочные и функциональные тестовые примеры в точности совпадают с той разницей, что в файле functional.suite.yml отсутствует файл phpBrowser, который присутствует в файле accept.suite.yml, а также на веб-сайте кода они говорят, что phpBrowser имеет следующие недостатки:

  • вы можете только нажать на ссылки с действительными URLs или формы кнопки отправки,
  • вы не можете заполнить поля, которые не в форме,
  • вы можете Работа с взаимодействием с JavaScript: модальные окна, датпикеры и т. д.

Таким образом, я не смогу проверить свои функции AngularJs. Есть ли способ обойти эти ограничения?

Заранее благодарен!

ответ

1

Будут ли более сложные тестовые случаи требовать YiiBridge?

Нет, они не будут.

Мы также используем Yii и записываем наши приемочные тесты с помощью WebDriver. Это похоже на phpBrowser, и вам не нужен Yii Bridge для этого, поскольку WebDriver/phpBrowser будет «имитировать» настоящий браузер. Для функциональных тестов необходим мост Yii. И да, вы правы:

Функциональные тесты практически одинаковы, с одним существенным отличием: функциональные тесты не требуют, чтобы веб-сервер запускал тесты.

More about functional tests.

Для AngularJS и еще яваскрипта тестов вам придется писать некоторые пользовательские функции, такие как следующие:

public function openDevice() { 
    $I = $this; 
    $script = 'return document.getElementById("createDevice").children[0].click()'; 
    $I->executeJS($script); 
} 

Это всегда немного раздражает, чтобы проверить JS, однако это возможно.

+0

Спасибо, это было полезно. – Sid

+0

Если вы не возражаете, самое лучшее - это принять и отложить ответ :) – Bfcm