1

クロム開発ツールの使用。アプリでビューをインスタンス化すると、これが表示されます...

new job.SearchView
SearchView
  $el: jQuery.fn.jQuery.init[1]
  cid: "view8"
  el: HTMLDivElement
  mbti: function (){ return fn.apply(me, arguments); }
  options: Object
  __proto__: ctor

ジャスミンから私は以下を得る(そしてスペックの失敗)

new job.SearchView
SearchView
  $el: jQuery.fn.jQuery.init[0]
  cid: "view17"
  el: undefined
  mbti: function (){ return fn.apply(me, arguments); }
  options: Object
  __proto__: ctor

ジャスミンでインスタンス化するときにel:が未定義になるのはなぜですか?

SearchViewはこのように定義されています...

jQuery ->
  class SearchView extends Backbone.View
    el: '#search'
    template: JST['resume']
    <snip>
  @job = if window.job then window.job else {}
  @job.SearchView = SearchView

そしてこのようなスペック...

describe 'Search View', ->
  it 'should be defined', ->
    expect(job.SearchView).toBeDefined()
  beforeEach ->
    @view = new job.SearchView()
  describe 'render', ->
    it 'should render the task', ->
      $el = @view.render().$el
      expect($el).toBeDefined()
4

1 に答える 1

1

ビューで属性を指定するとel、これはコンテナとして機能します。あなたのアプリ#searchではDOMに存在します。ジャスミンテストではそうではありません。

jasmine-jqueryを使用してサンドボックス化されたコンテナーを作成し、テストでビューを作成するときにそれらを使用できます。

`

于 2012-04-26T21:05:26.173 に答える