読者です 読者をやめる 読者になる 読者になる

どこぞのエンジニアなマネージャーのブログ。

Perlとかviとかcssとかjavascriptとか(rubyとか)git >> https://github.com/rozary hatenaIDがrozrayなのはtypo

memcacheでデータを set して get しているかのテストプラクティス

begginer perl

関数の中で、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);
}

あまり、綺麗な感じじゃないので、こうするといいよってのがあったら教えて下さい…。