require "rspec/core/rake_task" RSpec::Core::RakeTask.new("spec") task :default => :spec
![rake spec で spec/ 以下のテストを実行させるための最小限の設定 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/9f3337a3daf222cc64a9d68fee1b489470a29b1c/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9cmFrZSUyMHNwZWMlMjAlRTMlODElQTclMjBzcGVjJTJGJTIwJUU0JUJCJUE1JUU0JUI4JThCJUUzJTgxJUFFJUUzJTgzJTg2JUUzJTgyJUI5JUUzJTgzJTg4JUUzJTgyJTkyJUU1JUFFJTlGJUU4JUExJThDJUUzJTgxJTk1JUUzJTgxJTlCJUUzJTgyJThCJUUzJTgxJTlGJUUzJTgyJTgxJUUzJTgxJUFFJUU2JTlDJTgwJUU1JUIwJThGJUU5JTk5JTkwJUUzJTgxJUFFJUU4JUE4JUFEJUU1JUFFJTlBJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1lZWU1ZTRjMTgwOWRjOGU3N2RiYmMwYmMzMGYwMmJlYw%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwa3lhbm55JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz03YTg4NTNkMTRmMjE0NGQ0OGU5ZDYxODMwZjFkODU4Nw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D6a53f837631109038d7140821e0b0dcb)
require "rspec/core/rake_task" RSpec::Core::RakeTask.new("spec") task :default => :spec
Object#send(send)ならメソッドの呼び出し制限に関わらずメソッドを呼び出すことが可能なので、privateメソッドもテスト可能。 確か、1.9以降はメソッド呼び出し制限がObject#sendにも影響するとどこかで見た記憶があるのだけど結局そうはなっていないみたい。 1.9.1、1.8.7で確認済み。 ちなみにオマケ。 Pythonはメソッド名の前にアンダースコアを2つけるとprivateなメソッドになるのだけれど、実際のところ別名でメソッドを定義してそちらを呼び出してるっぽい。別名で定義された方はprivateではないので、そちらを呼び出してテストすることが可能。 他にもJavaだったらsetAccessible(True)を実行すればpublicなメソッドに変更されるのでテスト可能。と聞いただけで確認はしていない。
New!⇒ GAE/JRubyグループを作ってみました WEB-INF/spec/spec_helper.rb ENV["GEM_HOME"] = File.expand_path(File.join('..', 'gems'), File.dirname(__FILE__)) require "rubygems" require 'test/unit' require "spec" $LOAD_PATH << File.expand_path(File.join('..', 'lib'), File.dirname(__FILE__)) $LOAD_PATH << File.expand_path(File.join('..', 'models'), File.dirname(__FILE__)) $LOAD_PATH << File.expand_path(File.join('..'
どちらも Dave Astel による。英語ですが、それぞれお薦めです。 RSpec のcheat sheet http://blog.daveastels.com/articles/2006/09/09/rspec-cheat-sheet 今日見付けたんですが、基本的な使いかたが乗ってるのでいい感じです。先日の私のエントリもあわせてどうぞ。このへん知ってりゃ十分書けそうな感じです。 RSpec http://rubyforge.org/pipermail/rspec-devel/2006-August/000477.html こちらはチュートリアル。RSpec のバージョンがちょっと古めで、そのままじゃ動かないのが難点ですが、おおよそこれで良いかと。Mastermind というゲーム(女神転生やったことのあるひとは「コードブレイカー」というと分かり易いかも)を実装します。 で、私の場合こ
年末年始にスライドを作ろうと思って挫折しました。 RSpec のテストコードは見慣れない "should" なんかが出てきて難しそうに見えますが、実は覚えなきゃいけないのは 4つ程の語彙だけです。*1 Object#should_xxx [args] Object#should_have(n).items Object#should_not_xxx Proc#should_raise() Object#should_xxx [args] 超基本の書き方です。should_ の後に続いたメソッドを呼び出し、その結果が真ならパスします。args で、そのメソッドヘの引数も与えられます。これだけだとイメージし辛いと思いますのでいくつか例を。 "?"は付いても付かなくても OK だったと思います。 1.should_equal 1 Fixnum#equal を呼び出してます。上記の例では下記の判定
RubyのTest::Unitの表示を色つきにしたかったら、多分、 redgreenを使う のが一番スマートなんだと思う。 でも、私はTerm::ANSIColorを使った反転表示が気に入っているので、 youpyの人のやつ を使ってる。RedGreenでも設定すればできるのかもしれないけど、よく分かってない。 で、これをRSpecでもやりたいわけだ。youpyさんと同じく強引に、こんな感じになった。なんか、車輪を再発明してそうで嫌だね。 require 'term/ansicolor' module Spec module Runner module Formatter class BaseTextFormatter include Term::ANSIColor def initialize_with_color(output, dry_run = false, color = fal
■1 RSpecに(反転させた)色を付ける こんな感じですかね: って、認定言語ヲタにおかれましては既に解決してるかもしれませんが。脊髄反射的にやるなら次の通り: inverted_progress_bar_formatter.rb class InvertedProgressBarFormatter < Spec::Runner::Formatter::ProgressBarFormatter def green(text); colour(text, "\e[42m") end def red(text); colour(text, "\e[41m") end def magenta(text); colour(text, "\e[45m") end end 独自フォーマッタを書く。書いたファイルはどこかに置く。 specコマンド spec -r path/to/inverted_pr
脊髄反射的に作成。 function! Rspec () let rails_spec_pat = '\<spec/\(models\|controllers\|views\|helpers\)/.*_spec\.rb$' if expand('%') =~ rails_spec_pat :!ruby script/rails_spec -fs -c % else :!spec -fs -c % endif endfunction au BufRead,BufNewFile *_spec.rb :command! Rspec :call Rspec() 思ったより便利です。 2006/12/28 微妙にバージョンアップ script/rails_spec (dRubyで起動してるテストサーバに投げる)を使うようにした Rspec ("S"が小文字)の方が打ちやすいのでそっちに。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く