用于redis的PHPUnit夹具

用于redis的PHPUnit夹具,redis,phpunit,Redis,Phpunit,我想知道是否有为PHPUnit创建redis装置的既定程序。 虽然我可以想出一些方法来实现这一点,但有一些标准化的东西会很好 因为我不喜欢直接处理那些EOF文件,所以我现在使用 或者是一个日志文件,其中我将每一行作为单个命令运行 如果我需要生成大量可预测或随机的行,也可以使用LUA脚本 您如何测试包含redis的脚本?由于本地实例的速度,我使用了一个干净的测试实例,并考虑了一个明显的开销。 如何在php中录制和回放redis命令 在等待你的建议时,我分享我的建议 要记录输入redis的每个命

我想知道是否有为PHPUnit创建redis装置的既定程序。 虽然我可以想出一些方法来实现这一点,但有一些标准化的东西会很好

因为我不喜欢直接处理那些EOF文件,所以我现在使用

  • 或者是一个日志文件,其中我将每一行作为单个命令运行
  • 如果我需要生成大量可预测或随机的行,也可以使用LUA脚本
您如何测试包含redis的脚本?由于本地实例的速度,我使用了一个干净的测试实例,并考虑了一个明显的开销。 如何在php中录制和回放redis命令 在等待你的建议时,我分享我的建议

要记录输入redis的每个命令的日志文件,可以使用shell:

redis-cli monitor > redis.txt
在正常使用时运行只会生成真实的fixture

万一你不知道怎么转弯

"HSET" "foobar" "111" "1"  --->  $redis->hset('foobar', '111', '1');
使用


我想你说的是,你不想嘲笑你用来与redis对话的任何东西,而是计划在单元测试中与真实的实时redis实例对话。如果是这样的话,您不是在编写单元测试,而是在编写集成测试。科林,你说的有一部分是对的,因为在测试过程中依赖外部系统通常意味着焦点从单元转移到集成。然而,如果您依赖于第三方模拟系统或第三方实时系统,则差别不大。我当前的解决方案是使用一个新设置的localhost redis实例注入到被测系统中,并在单个测试用例中填充来自WITHIN的数据。当我考虑ReIDIS工作时,在填充真正的ReIIS实例而不是模拟的过程中没有什么缺陷。
preg_match_all('/"([^\s]+)"/', $line, $matches);

$command_parts = $matches[1];
$command = array_shift($command_parts);
$command = strtolower(trim($command));

call_user_func_array(array($redis, $command), $command_parts);