jquery docment.ready内のコーヒースクリプト呼び出し関数
-
26-10-2019 - |
質問
ジャスミンテスト:
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")
選択したクラスがフィクスチャに追加されていないため、このテストは私にとって失敗しています。私は機能を正しく呼んでいないと思います。どのように電話しますか
$( '#rectangle')。クリックします
私のテストで機能しますか?ありがとう。
解決
私は全体の文脈を知りませんが、私が見るいくつかのこと:
toolbar.rectangle
あなたのテストでは関数を呼び出していないので、あなたは言う必要がありますtoolbar.rectangle()
実際にそれを呼ぶ書かれたクラスは、ツールバークラスでメソッドを定義するものではありません。次のようなものを書く必要があります。
class Toolbar rectangle: -> $('#rectangle').click -> $('#toolbar button').removeClass("selected") $('#rectangle').addClass("selected")
あなたがこれを書くとき
$('#rectangle').click -> ...
, 、あなたがクリックすると呼ばれるイベントハンドラーを定義しています#rectangle
. 。あなたがそれを持ってもらいたいなら、すぐにアクションを持っています(つまり、あなたが電話するときtoolbar.rectangle()
, 、このようなものが必要です:class Toolbar rectangle: -> $('#toolbar button').removeClass("selected") $('#rectangle').addClass("selected")
もちろん、ページが正しく読み込まれた後にこれがすべて発生することを確認する必要があります。ジャスミンに精通していないため、それが起こるかどうかを述べる必要があります。
お役に立てれば。
所属していません StackOverflow