Как нажимать кнопку не работает в laravel 5

https://laracasts.com/lessons/laravel-5-and-behat-driving-authentication

Это учебник от Jeoffery Way, который я тестирую

Это сценарий, который я пытаюсь проверить

Scenario: Adding a new school
When I add a new school with "Narendra School" "This is a cool school"Then I should see "Add School"And a school is created

Это мой файл контекста

/**
* @When I add a new school with :arg1 :arg2
*/
public function iAddANewSchoolWith($name , $description )
{
$this->visit('school/create');
$this->fillField( 'name', $name );
$this->fillField( 'description', $description );
$this->pressButton('register');
}

/**
* @Then a school is created
*/
public function aSchoolIsCreated()
{
$school = School::all();
PHPUnit::assertEquals($school->isEmpty(), false );
}

Это мой HTML-код

<form method="post">
<h2>Add School</h2>

<input type="hidden" name="_token" value="{!! Session::getToken() !!}"/>

<input type="text" name="name" placeholder="Name">
<textarea name="description" placeholder="Description"></textarea>
<button name="register">Register</button>
</form>

Это метод контроллера, который я использую для создания объекта

function create( ) {

if ( \Request::isMethod( 'post' ) ) {

$this->school->add( \Input::all() );// I am using a repository and dependency injection so this code is fine, it will add a school
}

return view('school::school.add');
}

Когда я нажимаю на ссылку, заполняю форму и нажимаю регистр в браузере, я сохраняю новую школу, но когда я запускаю тест, я не могу создать школу.
Тест запущен, я вижу HTML, когда я делаю printLastResponse()

Feature: Testing
In order to teach Behat
As a teacher
I want to add a new school

Scenario: Adding a new school                                            # features\example.feature:6
When I add a new school with "Narendra School" "This is a cool school" # FeatureContext::iAddANewSchoolWith()
Then I should see "Add School"                                         # FeatureContext::assertPageContainsText()
And a school is created                                                # FeatureContext::aSchoolIsCreated()
Failed asserting that false matches expected true.

--- Failed scenarios:

features\example.feature:6

1 scenario (1 failed)
3 steps (2 passed, 1 failed)
0m3.10s (26.24Mb)

Это мой терминал лог
Что я делаю неправильно?

0

Решение

Вы можете попробовать заменить:

$this->pressButton('register');

С чем-то вроде:

$page = $this->getSession()->getPage();
$buttonElement = $page->find('css',".//button[@name='register']");
$buttonElement->click();

Когда вы используете Selenium Driver, иногда вы можете найти подсказку в журналах Selenium Server или, по крайней мере, увидеть исключение, когда что-то идет не так.

Также это было бы лучше 😉

PHPUnit::assertNotEmpty($school->isEmpty());
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector