A conversational AI system that listens, learns, and challenges

2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと
いろいろあって、sfFormはvalidatorのみ使用(widgetはほぼ自動で挿入される_csrf_token的なものでしか使用しない)、という方針で開発をすることがあるのですが、その際のエラーメッセージの取り出し方について一旦たどりついた結論です。 $this->form = new HogehogeForm(); $this->form->bind($request->getPostParameters()); if (!$this->form->isValid()) { $error_messages = array_map( create_function('$e', 'return $e->getMessage();'), $this->form->getErrorSchema()->getErrors()); {sfForm}->getErrorSchema()->getE
SQL 表結合(join) - 単純結合、等価結合、非等価結合、外部結合、再帰結合 様々な連結テーブルが作成できるが、良く使うものはビュー(create view) に しておくと効率が良い。結合は、テーブルとテーブル、ビューとビュー、テーブ ルとビューなど複雑にできる。(テーブル連結) ■単純結合 ・現実的に単純結合を使う機会はないだろう。 次の例では、受注m の各レコードに 品番m の全レコードが結合される。 受注m のレコード数 x 品番m のレコード数の結果が問い合わされる。 select * from sak.受注m, sak.品番m ; ■等価結合 ・等価結合は、特定のキーで表を結合します。 条件のどちらかのデータが存在しない場合、結果セットには含まれません。 現実的には外部結合が一番使いやすいと思います。 select 受注番号, 受注m.品番 品番, 品番m.入庫数 入庫数
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く