2011-10-18 17 views
0

ジャスミンテストdocment.ready:CoffeeScriptの呼び出し関数は

describe 'Toolbar', -> 
    beforeEach -> 
    jasmine.getFixtures().fixturesPath = "../spec/javascript/fixtures" 
    loadFixtures("canvas_fixture.html") 

    describe 'Rectangle Button Click', -> 
    it 'adds the selected class to rectangle button', -> 
     toolbar = new Toolbar() 
     expect(toolbar).toBeDefined 
     console.log $('#rectangle') 
     toolbar.rectangle 
     expect($('#rectangle').hasClass("selected")).toBeTruthy() 
     console.log $('#rectangle') 

クラス:

class window.Toolbar 
    jQuery -> 
    rectangle: $('#rectangle').click -> 
     $('#toolbar button').removeClass("selected") 
     $('#rectangle').addClass("selected") 

この試験は、選択されたクラスを固定具に追加されないように私のために失敗し、そしてIれます私は関数が正しく呼び出されていないと思う。私は

$( '#矩形')どのように呼んでください。私のテストで

機能をクリックしてください?ありがとう。

+0

スタート生成したJavaScriptを見て。情報について –

答えて

1

私は全体の文脈を知らないが、いくつかのものは、私は以下を参照してください、あなたのテストで

  • toolbar.rectangleは、関数を呼び出していない、あなたが実際に
  • あなたのクラスにそれを呼び出すためにtoolbar.rectangle()を言う必要がありますあなたはこの$('#rectangle').click -> ...を書くとき、あなたは、

    class Toolbar 
        rectangle: -> 
        $('#rectangle').click -> 
         $('#toolbar button').removeClass("selected") 
         $('#rectangle').addClass("selected") 
    
  • :ツールバークラスのメソッドを定義していない書かれたとして、あなたはこのような何かを書く必要があります#rectangleをクリックすると呼び出されるイベントハンドラを定義します。

    class Toolbar 
        rectangle: -> 
        $('#toolbar button').removeClass("selected") 
        $('#rectangle').addClass("selected") 
    

はもちろん、あなたが、すべて正しくこれはページのロード後に起こるかわからないようにする必要があり:あなたはそれがすぐにアクションを持っているしたい場合は、toolbar.rectangle()を呼び出すとき(すなわち、あなたはこのようなものが必要

。それが起こるのだろうかどうかを言うのはジャスミンに精通希望このことができます。

+0

おかげで。それは非常に役に立ちました。私は前にジャスミンを使用している人を望んでいますいくつかの情報を追加することもできます私はtoolbar.rectangle()を使用しても、私はまだテストで四角形のメソッドを呼び出すことができない原因 – John

+0

上記のように仕様を作ったばかりのJasmineをダウンロードしました。 、ローカルファイルシステムからではありません)。https://github.com/icyrockcom/so7815109-jasmine-coffeescript –