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 更新结果。重定向应该从控制器执行,而不是从数据库执行。
我还在研究 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 更新结果。重定向应该从控制器执行,而不是从数据库执行。