Код: Выделить всё
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
Мобильная версия