前回までのエントリーはこちら BDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 Haskell の浮動小数点小数の同値比較について BDD on Haskell チュートリアル その1 : HUnit で TDD を BDD on Haskell チュートリアル その2 : QuickCheck でランダムテスト BDD on Haskell チュートリアル その3-1 catch できない哀しみ BDD on Haskell チュートリアル その3-2 throw Exception を使わず基本は Either を使おう BDD on Haskell チュートリアル その3-3 : 仕様変更はテストから BDD on Haskell チュートリアル その4 : リファクタリングとパフォーマンスチューニング 今回はテストコ
前回までのエントリーはこちら BDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 Haskell の浮動小数点小数の同値比較について BDD on Haskell チュートリアル その1 : HUnit で TDD を BDD on Haskell チュートリアル その2 : QuickCheck でランダムテスト BDD on Haskell チュートリアル その3-1 catch できない哀しみ BDD on Haskell チュートリアル その3-2 throw Exception を使わず基本は Either を使おう BDD on Haskell チュートリアル その3-3 : 仕様変更はテストから 今回のテーマ 「テスト済みのモジュールのパフォーマンス改善」前回までで一通りの TDD / BDD によるアプローチで
前回までのエントリーはこちら BDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 Haskell の浮動小数点小数の同値比較について BDD on Haskell チュートリアル その1 : HUnit で TDD を BDD on Haskell チュートリアル その2 : QuickCheck でランダムテスト BDD on Haskell チュートリアル その3-1 catch できない哀しみ BDD on Haskell チュートリアル その3-2 throw Exception を使わず基本は Either を使おう 今回のテーマ - 「テスト済みのモジュールの仕様変更」前回書いたように,IO が絡まないはずの関数群に Exception を throw させるよりは Either <Error> <Success>
前回の続き.前回までのエントリーはこちら BDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 Haskell の浮動小数点小数の同値比較について BDD on Haskell チュートリアル その1 : HUnit で TDD を BDD on Haskell チュートリアル その2 : QuickCheck でランダムテスト BDD on Haskell チュートリアル その3-1 : catch できない哀しみ 「どちらか」を表現する Either 型Control.Exception の try catch finally はそもそも IO モナドで利用される事を想定している.つまり 外部からの入力や Haskell の実行結果を出力する境界で発生する予期しない事態に対応する為のものだ. なので,IO に本当は依存してな
前回までのエントリーはこちら BDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 Haskell の浮動小数点小数の同値比較について BDD on Haskell チュートリアル その1 : HUnit で TDD を BDD on Haskell チュートリアル その2 : QuickCheck でランダムテスト 前回までで,ほぼ TDD BDD の基本は書いたのだけど,今回は例外について. Haskell の例外処理Haskell も普通の言語よろしく,例外処理は throw try catch 使える.けれど IO が絡んでくる場合でないとあまり有用ではない印象. throw try catchHaskell の try catch throw finally は Control.Exception モジュールで定義され
新年のご挨拶あけましておめでとうございます. 2012年は Schemer, Haskeller にとって飛躍の年でありますよう心から願う所存であります. デザインについてはあと最終勧告まで2年を切った HTML 5 がそびえたつクソにならない事を切に祈り,ユーザビリティ,アクセシビリティ,ユースケース,UX をガン無視した「CSS3だけで出来たなんちゃらかんちゃら」「美麗なビジュアルエフェクトを実現する jQuery プラグイン」で衆目を集めてなんちゃってクリエイティブ気分を味わってる人たちが滅亡してくれる事を期待しています 前回までのエントリーBDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 BDD on Haskell チュートリアル その1 : HUnit で TDD を 今回は QuickCheck を使ってランダ
すこし日が空いてしまったけど,BDD on Haskell チュートリアルの続き. 前回までのエントリーはこちら BDD on Haskell の為のディレクトリ構成を考える BDD on Haskell チュートリアル その0 今回は HUnit を使って,基本的な TDD (BDD でなく) の進め方について. 例 商と,小数の余剰を返す関数 を定義してみる今回のチュートリアルで適当に「ある程度需要があって,あるとそれなりに便利なもの」として,Scheme の RSR6 で採択された div mod をやってみる. Haskell の mod についてHaskell の標準実装である mod rem は整数型しか受付けず,また返りも整数型なので,たとえば,Javascript や Ruby のように小数の余剰を返すことは無い. $ ghci Prelude> :t mod -- mod
前回の記事で Haskell で BDD する基本的な構成は出来たので,これから実際に簡単なチュートリアルを書いてみる.あと HPC を Cabal に設定させてビルドテストからテストカバレッジレポートも生成させる要領もわかったので,そっちの準備等も書く その前に 前回の記事の追記公開したら,まさに「もっとスマートな方法ありますよ」という反応が.インターネットってすばらしい GHC 7.0.2 以降,Cabal 10.2 だと Test-Suite 指定が出来る自分の環境が GHC7.0.2 なのに cabal-install が 0.8.2 というあべこべな状態だったので,前回のような方法でしかビルド構成できなかったのだけど,元々,GHC 7.0.x 同梱の cabal-install 0.10.x 以降は exitcode-stdio でちゃんとテスト構成を指定する事ができる,とのこと
ひさしぶりの Haskell ネタ 2011/12/13 追記下の例で app.cabal の設定や Setup.hs の記述などの情報が古かったので,こちらも一読してください → BDD on Haskell チュートリアル その0 経緯Haskell でそれなりのプログラムを書いてみようとしたので,HUnit や QuickCheck を使って BDD でやろうとしたのだけど,How to write a Haskell program 以上の事を誰も書いてないし,HUnit や QuickCheck の実例を書いた日本語圏のブログ記事も,その単体モジュールのテストのみ書いていて,肝心の全体テストを通しで実行するなどのネタが書かれていない. じゃあ実際に公開してるリポジトリでも見てみるかと思い,patchtag を見ても今度は公開してる人の殆どがテスト書くとかしてなかった.Haskel
まず仕様を満たすための振る舞いを定義し、それに準拠するようにプログラムを段階的に開発していく手法 BDD(Behavior Driven Development, 振舞駆動開発)。 ITアーキテクト Vol.4 (IDGムックシリーズ) で知った時に、そのうち試すつもりがすっかり忘れてしまっていた。今回、エンジニアマインド Vol.8 の特集のおかげで思い出したので、とりあえず試してみる事に。 テーマは「Java の開発で BDD を実施するには」って事で以下の 2点を試してみた。 JDave を使う(Ant からの実行) JRuby から Rspec(Ruby用の BDD フレームワーク)を使う はじめ、JDave だけを試すつもりだったのだが、残念ながら JDave は工夫されているものの DSL っぽく無いし記述が面倒に感じられたので、JRuby から Rspec 使った方が実用的か
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く