同僚のブログに乗っかるメモ書き

同僚がテストケースについて書いております。

https://parafamily.co.jp/2015/08/%E3%83%86%E3%82%B9%E3%83%88%E3%82%B1%E3%83%BC%E3%82%B9%E3%81%AE%E8%A6%81%E7%82%B9%E3%80%80cakephp/

同じことを一緒にやっており、ブログには綺麗にまとめていますが、なん通りもcodeの入力にミスり、テスト前にそもそもエラーを喰らったことは秘密です。

$result = $this->Article->getArticleName(3);
$compare = array(
‘Article’ => array(
‘title’ => ‘うぁーがんばろー’, ←ここの部分
)
);
$this->assertEquals($compare, $result);

ここの部分ですが、一番最初に$compare = ‘うぁーがんばろー’
と書いたのですが、もちろんエラーです。
そもそも文字とgetArticleNameさえ、あってりゃええんやろと
書いたら、エラーです。
コンピューターは、どこの『‘うぁーがんばろー’』だよということで
エラーなんですね。

同僚は10通りほど失敗したらしいのですが、ぜひ、どのようなミスをしたかブログに書いていただきたいものです。

テストケースの要点 Cakephp

テストケースは、開発したプログラミングに対して、意図しない動作をしないかを確認する作業です。

テストケースの書き方は

例えば

/Model/Articles.phpの
       * article名のみ取得する
public function getArticleName($article_id = null) {
$result = $this->find(‘first’, array(
‘conditions’ => array(
$this->alias.’.id’ => $article_id,
$this->alias.’.deleted’ => false,
),
‘fields’ => $this->alias.’.title’,
‘contain’ => array(),
));
return $result;
}

処理のテストケースを作成します。

===========================

補足

実行方法(teraterm)

・・・app]

全てのページを検証する場合

./Console/cake testsuite app AllTests

一つのページを検証する場合

./Console/cake testsuite app Model/Article

あるページの関数を検証する場合(debug(変数)等の中身おを調べたいとき)

./Console/cake testsuite app Model/Article –filter getArticleName(関数名)

==================================

検証する論理値(仮定しなければいけないこと)

実行する処理(今回は記事のタイトルを取得する)に対して、仮定することはいくつかあります。

①id(個人データ)があったら、そのタイトル名(Articleのtitle)を取得できるか

②削除済みのタイトルは取れない

③存在しないタイトルは取れない場合(削除されていない場合)

【実際のテストケース】

Model/Article.php

/**
* testGetTheAge method
*
* @return void
*/
public function testArticleName(){
// 存在しないタイトルは取れない
$result = $this->Article->getArticleName(99999999);
$compare = array(); //debug($result)
$this->assertEquals($compare, $result);
// 削除済みのタイトルは取れない
$result = $this->Article->getArticleName(6);
$compare = array();
$this->assertEquals($compare, $result);
// タイトルが取れる 
$result = $this->Article->getArticleName(3);
$compare = array(
‘Article’ => array(
‘title’ => ‘うぁーがんばろー’,
)
);
$this->assertEquals($compare, $result);
}

======================

【補足②】

始めに

@return void(->何も返さないよ) とか

@return array(->配列の返すよ)

など、返り値を設定しておきます。

*deletedの考え方

deleted = 削除済みのものを取ってくる

type P = false =>0、true=>1

*debug()関数に関して

debug()関数は取得したいデータを取ってきたい場合

実行したときにそのデータ処理が取得できます。

 

======================

Fixture(テストケースのデータ格納場所)の追加に関して

Fixtureに情報(データ)を格納したら、AllTestsをするとき、

そのときにでたエラーを修正していきます。

========================

このように、実行したい処理が何をしている処理なのか

(データを取得したいのか、削除したデータを取ってきたいのか、IF文で別々に処理しているのか、空の場合の処理なのか)

など、考えた上で、

テストケースは10パターンほど考えます。多ければ多いほどよいです。

このようにもし何かの不具合が見つかったら、何処が悪かったのかを検証できるので

基本的なことですがしっかりと見につけていけたらいいですね。

緩い土手シャイニング その2

前回のソフトバンク光についての続き

https://parafamily.co.jp/2015/08/%E7%B7%A9%E3%81%84%E5%9C%9F%E6%89%8B%E3%82%B7%E3%83%A3%E3%82%A4%E3%83%8B%E3%83%B3%E3%82%B0/
前回、ブログに書かせていただきましたが家のネットを『ソフトバンク光』にしてみました。
結果から言うと、特に大きな問題はなく繋がりました。
ネットで言われているような悪評も特になく、繋がって3日ほど経ちましたが今のところ
問題ありません。

工事代の説明が適当で当日、工事に来た方に聞いてもわからない。と言われましたが
まぁ小さいことですね。

ただ、こちらに書いておこうと思うのがオプションの解約の仕方についてです。
オプションはショップに行っても解約できません。自分でカスタマーに電話して
オペレーターに頼まないとできません。

ちなみに電話番号はショップで教えられるのが有料ですが
ソフトバンクのホームページには無料の番号が載っています。
http://ybb.softbank.jp/support/sbhikari/inquiry.html

また、電話の途中で『カスタマーid』の入力をお願いされますが、
これは各自の契約書に書いてあるのですが、その場に契約書がなく
探していると「入力が確認できませんでした」と言われて
最初から入力してくださいと心を折ってきます。
実は、これにも抜け道があり『9999』と入力すれば
オペレーターに繋いでくれます。もう繋がれば、こっちのものです。
『ソフトバンク光以外のオプション以外は全部はずしてください』と
一言言えば『かしこまりました』と全部、外してくれます。
ちなみにオプションの解約メールが、7個ぐらい来ますがお気になさらず。

オプションを外さないと3800円が5000なんぼになるので、必ず外しましょう。

CakePHP テーブルをJoinする

「テーブルをジョインしてね!」って言われたら、私はテーブル?机?、ジョイン?結合する?・・・・あっ!机を合わせてパーティーするのか!と思ってしまい、笑われましたww

初めて聞いた人は何いっているのかわからない。。。今日はCakePHP のjoinに関して

φ(`д´)メモメモ…しておきます(完全に網羅していません。)

【join(→関連付け)してモデルのレコードを取得する】

・HABTM(HasAndBelongsToMany)の特徴

始めにHABTMを説明しておくと

・2つのテーブルを結合するために使われる

・多対多で定義できる

という特徴を持っている。

例えば、UserとCategory がHABTMで関連付けられていると

両者を関連付ける結合テーブルというのが別に必要になる。

この結合テーブルには、インデックスとなるIDの他に、

User_idとCategory_idのカラムを用意してあげる必要があります。

【find関数で結合(join)したレコードを取得】:例

$this->User->find(‘all’,[

            ‘join’ => [

                   ‘type’ => ‘posts’,

                 ‘alias’ => ‘Post’ //*大文字

                 ‘conditions’ => ‘User.id = Post . user_id’,

    ]

]);

緩い土手シャイニング

ども。

皆さんは、ご自宅のネット回線はどちらを使っておりますか?
僕自身、家ではそんなにパソコンを使わないのでポケットWifeを使っていたのですが
ここ最近、娘がようつべで『まいっちんぐマチコ先生』をヘビロテで再生し
妻もネットサーフィンに精を出し月の半分ぐらい過ぎた頃には7ギガを超えて
制限を受けて、娘と妻が激おこぷんぷん丸になり、僕の精神衛生上
よろしくないので、先日、ビックカメラに契約しにいきました。
なんとなく、フレッツ光でいいやと思って行ったら、ソフトバンクの兄ちゃんに
捕まり、説明を受けると安いし、まぁいいやと軽い気持ちで契約しました。

しかし、家に帰ってスマホで

ソフトバンク光 評判』と検索してみると…

まぁ、酷いwww

工事予定日が2ヶ月先w
工事予約がソフトバンク側のミスでできていないww
工事前日に来るはずの連絡が来ないwww
モデムが工事予定日前に届くはずなのだが来ないwww
工事当日に業者が来ないwwwww
設置しても繋がらないwwwwww
サーバーパンクがよくあるwwwwwww

大草原不可避wwwwwwwwwwwwwwwwwww

すごいんですよ。なんか、どんだけソフトバンクに嫌な思いさせられたの?
と思うぐらい、しっかりとしたまとめブログがあったりと
ネット上で吹き荒れているのよ、悪評判が…
俺、やっちまったなぁと暗い気持ちになっていたのですが…

そもそも工事日は契約日に決めた。
数日後にソフトバンクから工事日の通知書が家に届く。
とりあえず、なんの前触れもなくモデムが届く。
一応、業者さんから前日連絡が来る。←今ここ!

明日は工事立会いなのでブログはお休みなのですが
ソフトバンク光の調子をみたいのでリモートで追記を
したいと思います。

明日、実際、ソフトバンク光どうなの?編を書きたいと思います。
ではでは。




 

 

ミステリーショッパー

皆さんは『ミステリーショッパー』ってご存知ですか?
覆面調査ってやつです。メーカーさんから依頼をもらって
こっそりお店に行って指定の項目を調査するやつです。
僕もたまに使っているのですが、けっこうおすすめです。

http://www.ms-r.com/

調査というと難しく考えるかもしれませんが基本的に難しいことはなく
ツイッターでつぶやくのが苦でなければできます。
なぜ、ツイッターを引き合いに出したかというと、レポートが
基本的にはチェックボックスにチェックするものと、
150文字ぐらいで感想を書いてくださいといった項目が数個あるです。

例えばどんな案件があるかというと
居酒屋やラーメン屋やお好み焼き屋、他にも色々あります。
もちろん食べ物だけではなく理容やレジャーなどもあります。

案件によっては多少ルールがありますが、そんな難しいものはなく
『この商品食べて』とか『お手洗いをチェックして』とかです。
どの案件にもいくら以上使ってくださいってのがありますが
たいていは謝礼金と同じぐらいなので、簡単なレポートの打ち込みが
苦じゃない人にはお得なサービスです。

この会社さん以外にも覆面調査の会社はありますから、ぜひ調べてみてください。

CAKEPHP nl2br() に関して

nl2br ・・・・・ 改行文字の前に HTML の改行タグを挿入する関数です。

書式:string nl2br( string string )

nl2br()は指定された文字列に含まれる全ての改行文字(\nなど)の前に、HTMLの改行タグ(<br />など)を挿入します。改行文字とは、行の最後に挿入して、そこで行を変えることを示す制御文字の一種である。ソフトによっては、矢印などを表示する場合があるが、通常、改行文字は目に見えない。

改行文字としては、キャリッジリターン(CR)、ラインフィード(LF)、この2つを連続したものなどが使用される。UNIX系OSではLF、Macintosh系ではCR、Windowsやインターネット電子メールはCR+LFが標準となっている。

返り値:改行文字の前にHTMLの改行タグを挿入した文字列を返します。

<?php

$str = 1行目\n2行目;

print nl2br($str);

?>

出力結果

1行目
2行目