无论 memcached 服务器是否可用,我都想确保我的代码始终按预期工作。
我的大部分功能如下所示:
function foo($parameter,$force = FALSE)
{
$result = Cache::get('foo_'.$parameter);
if (empty($result) || $force)
{
// Do stuff with the DB...
$result = "something";
Cache::put('foo_'.$parameter,$result,$timeout);
}
return $result;
}
现在在一个测试用例中我正在这样做:
class MyClassTest extends PHPUnit_Framework_TestCase {
function testFoo()
{
$result = $myClass->foo($parameter);
$this->assertSomething($result);
}
}
我可以像这样在 PHPUnit 期间全局禁用缓存setUp()
:
class MyClassTest extends PHPUnit_Framework_TestCase {
protected function setUp()
{
Cache::disable();
}
}
在调用之后Cache::disable()
,所有调用都Cache::get()
将false
在该请求期间返回。现在,我想在这个类中运行所有测试两次,一次有Cache::disable();
,一次没有。
关于如何做到这一点的任何想法?