0

Jasmine のセットアップとティアダウンの方法がうまくいくようにしようとしています。セットアップ後に変数をスコープ内に留めることができないため、間違った使い方をしているに違いありません。

動作しません:

describe 'classes/model', ->
  beforeEach ->
    model = new Model()
  describe 'the basics', ->
    it 'extends Backbone.Model', ->
      expect(model).toBeInstanceOf Model # Fails. 'model is not defined'

おそらくセットアップは説明の範囲内にある必要があると思いました。しかし、これも機能しません:

describe 'classes/model', ->
  describe 'the basics', ->
    beforeEach ->
      model = new Model()
    it 'extends Backbone.Model', ->
      expect(model).toBeInstanceOf Model # Fails. 'model is not defined'

動作します。(ただし、セットアップの利便性は使用しません)

describe 'classes/model', ->
  describe 'the basics', ->
    it 'extends Backbone.Model', ->
      model = new Model()
      expect(model).toBeInstanceOf Model

作業を妨げる何か間違ったことをbeforeEachしていますか?

4

1 に答える 1

4

それを見つけた。おそらくもっと早く気付くべきだった :) これを機能させるために、CoffeeScript が変数スコープを管理する方法に注意を払う必要があります。

describe 'classes/model', ->
  model = null # get it in scope
  beforeEach ->
    model = new Model()
  describe 'the basics', ->
    it 'extends Backbone.Model', ->
      expect(model).toBeInstanceOf Model
于 2013-07-24T17:20:44.220 に答える