Ruby on Rails/第12回勉強会 - Rspec概要?
Rspecとは †
- Rubyの
目次 †
第13回勉強会のネタ †
ネタもとは下記です。
- Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)
http://jp.rubyist.net/magazine/?0021-Rspec
- File: TUTORIAL.ja
http://kakutani.com/trans/rspec/TUTORIAL_ja.html
日時 †
- 2007/10/12(金) 17:00くらい 〜
参加者 †
本編 †
Rspecとは? †
- Ruby上でビヘイビア駆動開発(Behavior Driven Development)を実現するためのフレームワーク
ビヘイビア駆動開発(Behavior Driven Development)とは? †
- プログラムの満たすべき仕様(振舞)を記述してからプログラム本体の作成を始める開発手法
- それってテスト駆動開発と何が違うのか?
- まあやることはあまり変わらない。最初にテスト(振舞)を書いて、それにそってプログラムの実装をすすめていくっていうところは同じだから、言葉が違うだけって言っても言いすぎではない。
- なんだそれ?金返せ。
- いやいや言葉が違うだけでも大変な違いですよ。
- 人類学者、言語学者として有名なエドワード・サピアの言葉に「『現実の世界』というものは、多くの限度にまで、その集団の言語習慣の上に無意識的に形づくられているのである。 」という言葉もありますし、例えば虹の色の数っていうのは属する文化に...
- うるせぇ。
Rspec の狙いはプログラマにテストコードが設計であることを明確に 意識させることと、プログラマがテストコードをスムースに記述し 実行できるようになることです。 そのために、RSpec は振舞定義用の DSL を提供し、様々なテスト 関連ライブラリや周辺ツールとの連携を積極的に行い、「統合テス ティング環境」となることを目指しています。
もう一度Rspecとは †
- Ruby上でビヘイビア駆動開発(Behavior Driven Development)を実現するためのフレームワーク
- プログラムファイルとは別に、それの振舞を記述するためのspecファイルを作成する。
- specファイルはドメイン特化言語を使用して記述する。
ドメイン特化言語とは? †
ドメイン特化言語 (Domain Specific Language:DSL) とは、特定の問題領域 (ドメイン) を 記述するために設計された「言語」です。RSpec が特化しているドメインは「開発対象の プログラムの振舞を記述する」という領域です。
- つまり特定の問題領域のための専門の言語
- Rspecは振舞を記述するためにrubyの言語を拡張して特化した言語。
- 比喩
java 英語 ruby 日本語 xml フランス語 rspec 弁護士の専門用語(日本)
- javaとrubyとantはそれぞれ別の言葉である。
- rubyとrspecは別の言葉ではない。rspecはrubyを特定の専門領域について効率的に表現するために、ruby内では普段利用しない語彙を使用している。
- テスト駆動開発(Test Driven Development)
- ビヘイビア駆動開発(Behavior Driven Development)
- Rspecとは「プログラムの振舞 (behaviour)」を記述するためのドメイン特化言語 (DomainSpecific Language:DSL) を提供するフレームワーク」である。
- ビヘイビア・スペシフィケーション・フレームワーク
振舞設計フレームワーク
テストコードのようなものを書き、それは実質テストケースのように利用するが、
それはテストケースではなく、振る舞いの設計を記述(プログラムがどう動くべき
であるかを記述)したものである。
テスト 作成したプログラムが正しく動いているかどうか
Rspec 設計 プログラムの振る舞いを記述する
↓
上記を確認する方法としてテストケースを作成する
インストール方法、
Wiki参照
結論 †
- 非常に観念的なところばかりが先行していて、実際上のメリットがあまり見えてこない。
- また乗るのは早いかな。という印象。
- 将来的に普及するかどうかも分からないし。
- まあこれの勉強会はまだ続けるけどね。