Unit testing 如何在init函数中测试drupal_goto?
因此,有一个函数可以执行如下操作:Unit testing 如何在init函数中测试drupal_goto?,unit-testing,drupal-7,drush,Unit Testing,Drupal 7,Drush,因此,有一个函数可以执行如下操作: function mymod_init() { $ip = '123.123.123.123'; $newPath = mymod_redirect_calculate($ip); if (!empty($newPath)) drupal_goto($newPath); } 这完全破坏了单元测试。我对mymod_redirect_calculate进行了测试,但是如果我将上述内容添加到我的init函数中(如图所示),测试将无法运行 从
function mymod_init()
{
$ip = '123.123.123.123';
$newPath = mymod_redirect_calculate($ip);
if (!empty($newPath)) drupal_goto($newPath);
}
这完全破坏了单元测试。我对mymod_redirect_calculate进行了测试,但是如果我将上述内容添加到我的init函数中(如图所示),测试将无法运行
从我收集的信息来看,exit和drupal_goto破坏了单元测试
我该怎么解决这个问题呢?事实上,drupal_goto最后会打电话给exit。使用标题应该可以:
function mymod_init() {
$ip = '123.123.123.123';
$newPath = mymod_redirect_calculate($ip);
if (!empty($newPath)) {
$url = url($newPath, array('absolute' => TRUE));
header('Location: ' . $url, TRUE);
}
}