Laravel Dusk, как уничтожить данные сеанса между тестамиPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel Dusk, как уничтожить данные сеанса между тестами

Сообщение Anonymous »

Я начинаю использовать Laravel Dusk для тестирования браузера и создал несколько тестов для проверки моей формы входа. У меня есть следующий код:

Код: Выделить всё

class LoginTest extends DuskTestCase
{

public function testLogin()
{
$this->browse(function (Browser $browser) {
$browser->visit('/admin')
->type('email', 'inigo@mydomain.co.uk')
->type('password', 'MyPass')
->press('Login')
->assertSee('Loading...');
});
}

public function testLoginFailure(){
$this->browse(function (Browser $browser){

$browser->visit('/admin/logout'); // I have to add this to logout first, otherwise it's already logged in for this test!

$browser->visit('/admin')
->type('email', 'someemail@afakedomain.com')
->type('password', 'somefakepasswordthatdoesntwork')
->press('Login')
->assertSee('These credentials do not match our records.');
});
}
Смотрите комментарий. Первая функция работает нормально, но когда дело доходит до второй функции, мне нужно сначала выйти из системы, поскольку пользователь уже вошел в систему в результате запуска первой функции. Для меня это стало неожиданностью, так как я думал, что модульные тесты полностью независимы, а данные сеанса автоматически уничтожаются.

Есть ли лучший способ сделать это — какой-нибудь метод Dusk что я, возможно, упускаю - чем вызывать $browser->visit('/admin/logout'); ?

Спасибо

РЕДАКТИРОВАТЬ Спасибо за 2 ответа, оба из которых кажутся правильными решениями. Я обновил вторую функцию следующим образом:

Код: Выделить всё

public function testLoginFailure(){
$this->createBrowsersFor(function(Browser $browser){
$browser->visit('/admin')
->type('email', 'someshit@afakedomain.com')
->type('password', 'somefakepasswordthatdoesntwork')
->press('Login')
->assertSee('These credentials do not match our records.');
});
}
Что и делает свою работу. Итак,
  • Я могу с уверенностью предположить, что этот второй браузер существует только на время действия этой единственной функции, верно?
  • Каковы очевидные преимущества/недостатки создания второго экземпляра браузера вместо использования метода демонтажа?


Подробнее здесь: https://stackoverflow.com/questions/449 ... ween-tests
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»