A Day in the Life

2011-02-01

JSDeferred の envjs + johnson 版のテスト書いた

最近 capybara-envjs を使ってみたら、普通に CUI だけで Ajax のテスト書いて実行できて sugeeee って感動し JS のテストが再び熱いセコンドライフですこんばんは。

というわけで CUI でどうやって Ajax のテストができるのか、実際に試してみた方が早いのでちょうど良い JSDeferred (jQuery.Deferred じゃないですyp!!) のテストを書いてみた。

実行

test-envjs-johnson

JSD のテストは他にも rhino / node.js 向けのテストがあり、CUI で実行できるんだけど、envjs + johnson の方は jQuery の JSDeffered binding / Ajax のテストもちゃんと CUI で実行できてる!

この辺のくわしい話は Shibuya.js でテスト話そろそろしたいなーと思ってるのでそのときしたいですね

rack で静的サーバを立ち上げる

静的な方です。plack だとかっこよく

# ちょさんがこれでいっぱつですと教えてくれた
plackup -MPlack::App::Directory -e 'Plack::App::Directory->new({root=>"."})->to_app' -p 3000

なんだけど rack だと config.ru ファイルが必要でどうもしまりがわるい。

echo "run Rack::Directory.new('.')" > config.ru;rackup -p 3000; rm -f config.ru

これファイル作らずにワンライナで実行する方法あるのかな…。

Gem の API ドキュメント

いつも忘れるのでメモ。この辺見るとだいたいやりたいのが載ってる。

あと、Gem で読み込み済みの gem のパッケージから特定の file 名のファイルをフルパスで取り出すには

require 'pathname'
def gemname_filename(gemname, filename)
  Gem.loaded_specs.each do |key, spec|
    if key == gemname
      return Pathname.new(spec.full_gem_path).join(spec.files.detect {|f| f.match filename })
    end
  end
end

puts gemname_filename('johnson', 'test/helper.rb')
#=> /home/yuichi/.rvm/gems/ree-1.8.7-2010.02/gems/johnson-2.0.0.pre3/test/helper.rb

な感じ。同じようなコード三回ぐらい書き捨ててるのでメモ…。