在Laravel中对用户登录进行单元测试

时间:2016-06-02 11:16:43

标签: laravel laravel-5.2

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

从这里开始,我不太清楚我需要做什么断言。我已经编写了执行此功能的代码(我在validateLogin表单中有一个自定义的Validator),然后它会抛出一条错误消息,其中包含“您的帐户未处于活动状态”的行。

最好的方法是什么?到目前为止我所拥有的:

/** @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()]);
}

1 个答案:

答案 0 :(得分:1)

使用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库,因为有了它,您可以在数据库中验证结果,创建验收和功能测试。