関数の中で、memcacheにsetとかgetとかしているときってチェックしづらい。
だので、Devel::KYTProfをuseすることでmemcached周りの処理がSTDERRに流れてくる所を利用して、
それをcaptureしてテストするというようにしている。
Devel::KYTProfとCapture::Tiny使ってる。
#!/usr/bin/perl use strict; use warnings; use Cache::Memcached::Fast; use Capture::Tiny qw/capture/; use Devel::KYTProf; use Test::More; plan tests => 2; my $cache = Cache::Memcached::Fast->new(); my ($o,$e) = capture { &set_func("OSARU"); }; like($e,qr/set/,"set ok"); ($o,$e) = capture { &get_func(); }; like($e,qr/get/,"get ok"); sub get_func { $cache->get("USER_NAME"); #他にも処理があるのを想像してください…。 } sub set_func { my $name = shift; $cache->set("USER_NAME",$name); }
あまり、綺麗な感じじゃないので、こうするといいよってのがあったら教えて下さい…。