2011-02-01
JSDeferred の envjs + johnson 版のテスト書いた
最近 capybara-envjs を使ってみたら、普通に CUI だけで Ajax のテスト書いて実行できて sugeeee って感動し JS のテストが再び熱いセコンドライフですこんばんは。
というわけで CUI でどうやって Ajax のテストができるのか、実際に試してみた方が早いのでちょうど良い JSDeferred (jQuery.Deferred じゃないですyp!!) のテストを書いてみた。
実行
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 ドキュメント
いつも忘れるのでメモ。この辺見るとだいたいやりたいのが載ってる。
- http://rubygems.rubyforge.org/rubygems-update/
- http://rubygems.rubyforge.org/rubygems-update/Gem.html
- http://rubygems.rubyforge.org/rubygems-update/Gem/Specification.html
あと、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
な感じ。同じようなコード三回ぐらい書き捨ててるのでメモ…。