单元测试用户登录在拉拉维尔



用户只能在其帐户处于活动状态时登录系统。我使用工厂创建一个用户(最初他们的状态设置为"挂起"),然后尝试发布到登录表单。

从这里开始,我不太确定我需要做什么断言。我已经编写了执行此功能的代码(我在validateLogin表单中有一个自定义验证器),然后它抛出一条错误消息,内容类似于"您的帐户未激活"。

解决这个问题的最佳方法是什么?到目前为止,我拥有的:

/** @test */
public function it_can_only_login_if_the_status_is_active()
{
    $user = factory(User::class)->create();
    $this->post('login', ['email' => $user->email, 'password' => $user->password, '_token' => csrf_token()]);
}

使用Laravel测试方法的构建,您可以这样做:

    $user = factory(User::class)->create();
    $this->visit('/login')
        ->type($user->email, 'email')
        ->type($user->password, 'password')
        ->press('Login')
        ->see('your account is not active');

如果您需要测试一些复杂的功能,我可以推荐 Codeception 库,因为有了它,您可以在数据库中验证结果,创建验收和功能测试。

最新更新