【问题标题】:Laravel Testing User::store() with phpunitLaravel 使用 phpunit 测试 User::store()
【发布时间】:2014-09-28 08:36:52
【问题描述】:

我目前正在学习 Laravel 和 UnitTesting,所以这可能是一个愚蠢的问题。

我不知道如何最好地测试下面的控制器功能:

用户控制器:

public function store()
{
    $input = Input::all();
    $user = new User($input);

    if( ! $user->save()){
        return Redirect::back()->withInput()->withErrors($user->getErrors());
    }

    return Redirect::to('/user');
}

这是我目前的测试:

    /**
 * @dataProvider providerTestUserStoreAddsUsersCorrectly
 */
public function testUserStoreAddsUsersCorrectly($first_name, $last_name, $email, $password)
{
    $response = $this->call('POST', 'user', array('first_name'=>$first_name, 'last_name'=>$last_name, 'email'=>$email, 'password'=>$password));
}

public function providerTestUserStoreAddsUsersCorrectly(){
    return array(
        array("FirstName", "LastName", "Email@add.com", "pass1234")
    );

}

这实际上正在工作并将用户正确添加到数据库,但我不确定如何测试输出/用作响应的断言应该是将用户添加到数据库并重定向到 @ 987654323@ 页。

我该如何完成这个测试?

【问题讨论】:

    标签: laravel-4 phpunit


    【解决方案1】:

    如果您需要检查成功状态,则只需从控制器发送状态代码 并在测试中检查状态

    public function store()
    {
        $input = Input::all();
        $user = new User($input);
    
        if( !$user->save() ){
            return array("status"=>'failed');
        }
    
        return array("status"=>'success');
    }
    
    public function testUserStoreAddsUsersCorrectly($first_name, $last_name, $email, $password)
    {
        $requested_arr = [
            'first_name' => $first_name,
            'last_name' => $last_name,
            'email' => $email,
            'password' => $password
        ];
        $response = $this->call('POST', 'user', $requested_arr);
        $data = json_decode($response ->getContent(), true);
    
        if ($data['status']) {
            $this->assertTrue(true);
        } else {
            $this->assertTrue(false);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-09-11
      • 2016-06-04
      • 2017-11-29
      • 2017-11-17
      • 1970-01-01
      • 2019-10-24
      • 2014-09-11
      • 2015-01-24
      • 2015-09-01
      相关资源
      最近更新 更多