後から実装はアノテーションのコメントをいれて後で参照する。
コードに下記のように入れておくと
def validate_each(record, attributes, value)
# TODO: 後から実装
end
下記のコマンドであとから参照できる。
$ rake notes
ウィンドウズだと日本語が文字化けするらしいので注意
後から実装はアノテーションのコメントをいれて後で参照する。
コードに下記のように入れておくと
def validate_each(record, attributes, value)
# TODO: 後から実装
end
下記のコマンドであとから参照できる。
$ rake notes
ウィンドウズだと日本語が文字化けするらしいので注意
アプリケーションが複雑になってきて、疎結合でがんばっていてもどうしてもひとつ直すと一方に影響してしまう状況になったので、やっぱりテストもきちんとしなければと思いなおし調べた結果、RSpecというのがどうやらよいらしい。
一応デフォルトのTest:Unitを使っていたのですが、どうせ本格的に導入するならみなさんが「いい」といっているほうがいいにきまってます。
ということでRSpecをはじめました。
が、情報が少ない!いきなりつまずいてしまいました。
ネット上の記事によっていろいろ違うことが書いてあります。どれも環境によって使い方が違うのか、短い間に仕様がいろいろ変わったのかなと想像していますが。
なのであくまで私の環境においてどのようにはじめたかを記述します。
環境は下記のとおり
まず、インストールです。Gemfileに下記を記入
gem ‘rspec-rails’, ‘>= 2.6.0’, :group => [:development, :test]
$ bundle installを実行してインストールされたことを確認。
次にプロジェクトにRSpecを初期設定します。
$rails g rspec:install
この状態でscaffoldなどを使うと自動的にspec/のなかにmodels/hoge_spec.rbなどのファイルができます。
これらのファイルは自分で作ってもOKなのですが、だーっと作ってもらえるのはやっぱりうれしい。
ところが私の場合プロジェクトの途中ですのですでにたくさんのモデルやcontrollerを作ってしまっていました。
すでに存在するものに対してspecファイルを作るには以下のとおり。
$ rails generate rspec:model Hogehoge
コントローラも同様に作れる模様。
その後で
$ rake spec
ですべてのテストを実行できます。
■なやんだところ
一部の記事にはRSpecをインストールした後、
$ spec -v
でインストールされたかどうかを確認する。とありましたが
$ rspec -v
で確認することができました。
Gemファイルとして提供されているものではなくRailsのプラグインとして導入するよいと薦めている記事もあります。 これによってその後の操作が違うようです。
$ rails destroy scaffold 取り消したいScaffold名
でappのmodel,view,controllerの各要素やhelper,javascript,stylesheetなどgenerate scaffoldで作られたものがすべて削除される。
が、DBが残っている。
のでそれも消す。下記はsqlite3でgtoupsテーブルを削除する例
sqlite3 db/development.sqlite3 #接続
sqlite> .tables #テーブルがあることを確認
sqlite> DROP TABLE groups; #削除
sqlite> .tables #テーブルが削除されたことを確認