Contenu connexe
Similaire à ライトニングトーク資料 OSC東京2017秋 (20)
ライトニングトーク資料 OSC東京2017秋
- 14. ディレクトリ 説明
factories ファクトリー
features 統合テストスペック
fixtures 非データベースのデータ
helpers ヘルパースペック
jobs ジョブスペック
lib ライブラリスペック
mailers メーラースペック
models モデルスペック
requests リクエストスペック
support ヘルパーメソッド
validators バリデータスペック
14
Notes de l'éditeur
- 今回はRubyのためのビヘイビア駆動開発ツールであるRSpecとシラサギでのRSpec運用例について説明します。
- まずは自己紹介をします。
- 名前は谷本 真治です。
所属は株式会社ウェブチップスで、開発を担当しています。
- 2017年4月に新入社員として入社しました。
- 私はRubyを入社後に本格的に勉強しています。
Rubyは書くことは簡単ですが、きれいに書くことが難しいプログラミング言語です。
しかし、Rubyは使っていて楽しい言語です。
私はRubyのことをもっと勉強して立派なプログラマーになりたいと考えています。
- 私は徳島でオープンソースソフトウェアであるシラサギの開発をしています。
- RSpecの説明に入る前に、まずシラサギの特徴を簡単に説明します。
- シラサギはWebアプリケーション開発プラットフォームです。
シラサギの上にCMS、グループウェアなどのアプリケーションがあります。
そのため、CMS、グループウェアなどを同一システムで利用可能です。
- シラサギはMITライセンスのオープンソースソフトウェアです。
そのため、カスタマイズやフォークが可能です。
また、拡張機能を非公開にするという選択が可能です。
- それでは、本題であるRSpecの説明に入ります。
- RSpecはビヘイビアを記述するためのドメイン特化言語を提供するフレームワークです。
- RSpecはRubyプログラマーのためのビヘイビア駆動開発ツールです。
ビヘイビアとは振る舞いのことで、”このように動いてほしい”といった要求のことです。
RSpecは機能的に優れており、多くのRubyプログラマーが使用しています。
- シラサギではRSpecに関連するファイルをspecフォルダー以下に用意しています。
- Specフォルダーの中は検証したい項目を記述するスペックファイルのあるフォルダーや検証のためのテストデータを作成するフォルダーなどがあります。
今回はシラサギでのRSpec用のテストデータの作成例、運用例を中心に話したいと思います。
- まずは、factoriesフォルダーについて説明します。
- factoriesはテストデータを作成するファクトリーのフォルダーです。
- factoryの後にcms_test_userなどと記述することでテストデータを作成できるようになります。
- 例えばCMSの検証を実行したい場合、サイトのデータが必要です。
- シラサギではファクトリーでテスト用のデータを作成することで対応しています。
- 続いてfixturesフォルダーの説明をします。
- fixturesは非データベースのデータのフォルダーです。
- 非データベースのデータには画像やCSVなどがあげられます。
- fixtures以下のファイルのパスを記述することでデータを使用できます。
- シラサギでは画像を使用する機能があります。
fixturesを使用することで画像を使用したテストが実行できます。
- また、シラサギではCSVを使用してページなどのインポート、エクスポートを実行しています。
fixturesを使用することでCSVを使用したインポート、エクスポートのテストを実行できます。
- 続いて、supportフォルダーについて説明します。
- supportはRSpecで使用するヘルパーメソッドのフォルダーです。
- defのlogin_cms_userと記述することでlogin_cms_userというヘルパーメソッドを定義できます。
- CMSのテストにはサイトのテストデータを使用します。
テストごとに同じ内容のサイトのテストデータを何度も入力するのは大変です。
- シラサギでは、多用するテストデータをヘルパーメソッドで簡単に記述できるようになっております。
- 最後に、シラサギ独自に定義したRSpecのオプションであるdbscopeについて説明します。
- dbscopeはデータベースを初期化するヘルパーメソッドの実行タイミングを設定するオプションです。
- dbscopeのあとにexampleと記述することで、設定に応じたタイミングでデータベースを初期化します。
- exampleの場合、テストを実行するたびにデータベースを初期化します。
contextの場合、specファイルごとにデータベースを初期化します。
- シラサギではテストデータを使い回したくない場合や、逆に使い回したい場合があります。
このオプションによりデータベースの初期化のタイミングを変更することで対応できます。
- 以上で発表を終わります。
ご清聴ありがとうございました。