- konacha: mochaをrailsで良い感じにするやつ
- mocha: jsをrspecっぽくテストできるやつ(like a jasmine)
- chai: mochaのassertionライブラリ
$ brew install qt
# Gemfile:
group :development, :test do
gem 'capybara-webkit'
gem 'konacha'
end
# config/initializers/konacha.rb:
Konacha.configure do |config|
config.spec_dir = 'spec/javascripts'
config.driver = :webkit
config.stylesheets = %w(application)
end if defined?(Konacha)
# app/assets/javascripts/foo.js.coffee:
class Foo
bar: ->
'bar'
# spec/javascripts/foo_spec.js.coffee:
#= require foo
describe 'Foo', ->
it '#bar', ->
(new Foo).bar().should.equal('bar')
% rake konacha:run
F
Failed: Foo #bar
ReferenceError: Can't find variable: Foo
Finished in 0.00 seconds
1 examples, 1 failed, 0 pending
そりゃそうだ。だってcoffeeだと
(function() {
var Foo;
Foo = (function() {
function Foo() {}
Foo.prototype.bar = function() {
return 'bar';
};
return Foo;
})();
}).call(this);
こうやってグローバグ汚さないように囲われてるんだから。だからといって元々デフォルトOFFだった--bareオプションは今はデフォルトONになってるのでわざわざ外すもの気持ち悪い。
だったら
class @Foo
って書けばいいじゃん。って言ってるんだけどマジで?みんなどうやってるの?
sprockets-commonjsが標準で入ってファイル名にmoduleが必要じゃなきゃいいんだけどなあ。