PHP 单元 returns 在 PHP 结束后处理

PHP unit returns after PHP ends proces

我还在研究 php 单元,我发现了以下场景:

我有以下代码来更新一个简单的用户配置文件,它工作正常。

public function updateUserData($sessionId, $first_name, $last_name, $email) {
    $result = $this->_instance->executeQuery('
        UPDATE users SET email=?, first_name=?, last_name=? WHERE users_id=?'
        , array($email, ucfirst($first_name), ucfirst($last_name), $sessionId)
    );

    if($result){
        Session::set('detailsUpdated', '<div class="alert alert-success"><strong>Succes! </strong>Your details have been updated!</div');
        Redirect::to('profile.php');
    }
}

问题是,我真的无法 return 任何可以作为我的单元测试基础的东西。我无法 return a true 或 false 因为如果我这样做,在重定向之后它不会执行,如果我在重定向之前它不会再执行重定向。

我怎样才能制作一个 return 我可以通过测试拿到的东西?

提前致谢!

您的问题出现是因为该方法做了不应该做的事情。如果该方法应该更新用户数据,为什么它会在之后进行重定向?

将来您是否需要进行此数据更新而不是重定向,而是执行其他操作是不可能的吗?

只需删除 if 部分和 return 更新结果。重定向应该从控制器执行,而不是从数据库执行。