スペック ファイルとアセットをコーヒー スクリプトとして実行するために、jasmine-headless-webkit を使用することにしました。すべてが正しくインストールされていると思いますが、おそらく jasmine.yml ファイルに何か問題があります。
src_files:
- spec/support/javascripts/jquery-1.7.2.js
- app/assets/javascripts/application.js
helpers:
- helpers/**/*
spec_files:
- "**/*_spec.*"
src_dir:
- vendor/assets/javascripts
spec_dir: spec/javascripts
コマンドを実行すると、同じ行に沿って 3 つのエラーが発生します。
Editor should have an array named tables. (/Users/aaronmcleod/Documents/awesome_model/spec/javascripts/editor_spec.js.coffee:20)
ReferenceError: Can't find variable: AwesomeModel
AwesomeModel 変数は、window オブジェクトにエクスポートする、私が使用しているハッシュです。次に、Editor クラスなどをそれにアタッチします。なぜこれが定義されていないのかについてのアイデアはありますか? 役立つ場合は、これが私の仕様ファイルです。
fixture_text = ->
"Company has_many:Employee\n" +
" id : int\n" +
" name : varchar\n" +
"Employee belongs_to:Company\n" +
" id : int\n" +
" name : varchar\n" +
" phone : varchar\n" +
"ComplicatedTable-Name\n" +
" id : int"
class DummyPane
constructor: ->
@viewport = {}
clean_up: ->
describe "Editor", ->
it "should have an array named tables", ->
editor = new AwesomeModel.Editor(fixture_text())
expect(editor.tables).toBeDefined()
describe "#parse_table_names", ->
text = fixture_text()
editor = new AwesomeModel.Editor(text)
it "tables should be of three length", ->
editor.parse_table_names()
expect(editor.tables.length).toEqual(3)
it "the first table name should be 'Company'", ->
editor.parse_table_names()
expect(editor.tables[0].name).toEqual("Company")
it "the third table name should be 'ComplicatedTable-Name'", ->
editor.parse_table_names()
expect(editor.tables[2].name).toEqual("ComplicatedTable-Name")
describe "#add_columns", ->
text = fixture_text()
editor = new AwesomeModel.Editor(text)
editor.parse_table_names()
describe "first table", ->
it "the first table should have two columns", ->
editor.add_columns()
table = editor.tables[0]
expect(table.columns.length).toEqual(2)
it "the first column of first table should be named 'id : int'", ->
editor.add_columns
table = editor.tables[0]
expect(table.columns[0].name).toEqual('id : int')