2016-03-04 124 views
3

這裏是從ember test --serv輸出錯誤:爲什麼我的燼測試給我TypeError:'undefined'不是函數?

Integration | Component | date-time-input: it renders 
    ✘ TypeError: 'undefined' is not a function (evaluating 'elem.getAttribute(name)') 
     http://localhost:7357/assets/vendor.js:1685 

這種情況與我所有的集成測試和驗收測試。

如何在沒有正常堆棧跟蹤的情況下調試此錯誤? 有沒有辦法配置燼給我一個體面的堆棧跟蹤?

下面是上述錯誤的測試:

import { moduleForComponent, test } from 'ember-qunit'; 
import Ember from 'ember'; 
import hbs from 'htmlbars-inline-precompile'; 

moduleForComponent('date-time-input', 
    'Integration | Component | date-time-input', { 
    integration: true, 
    }); 

test('it renders', function(assert) { 
    // Set any properties with this.set('myProperty', 'value'); 
    // Handle any actions with this.on('myAction', function(val) { ... }); 
    let two = Ember.Object.extend({ 
    someDate: null, 
    }); 
    this.set('two', two); 
    this.render(hbs`{{date-time-input model=two field='someDate'}}`); 

    assert.notEqual(this.$().text().indexOf('2016'), -1); 
}); 

和相應的組件

import Ember from 'ember'; 

export default Ember.Component.extend({ 

    fieldValue: Ember.computed('model', 'field', function() { 
    let fieldName = this.get('field'); 
    let value = this.get('model.' + fieldName); 
    return value; 
    }).readOnly(), 

    actions: { 
    dateChanged: function (value) { 
     let model = this.get('model'); 
     let field = this.get('field'); 

     model.set(field, value); 
    }, 
    }, 
}); 

{{flat-pickr 
    dateFormat='F j, Y at' 
    timeFormat='h:i K' 
    value=fieldValue 
    enableTime=true 
    onChange=(action 'dateChanged') 
}} 

這裏是我的回購,萬一有人好奇:https://github.com/NullVoxPopuli/aeonvera-ui

回答

4

你實際上獲得了一個有用的堆棧跟蹤,儘管在編譯vendor.js而不是在源文件中。

如果您使用的是Chrome,請在來源面板中打開assets/vendor.js。然後在第1685行設置一個斷點。因爲ember-cli在資產編譯時創建了源映射,Chrome應該立即將您帶到源文件中的相應行。

令人討厭的是,Testem並未指向源文件,但您應該能夠從編譯後的文件中恢復原樣。

(此外,它看起來像你的堆棧跟蹤是jQuery的的頂線,是否有幫助。)

+0

所以,經過調試,我發現它正試圖獲得該屬性是'數據tooltip'仍然不知道爲什麼getAttribute方法不是'elem'上的函數,但是..我再次查找基礎文檔(css框架),並看到我錯誤地配置了我的工具提示。所以我刪除了'data-tooltip'綁定,現在所有的測試都通過了。 超級怪異。 – NullVoxPopuli

相關問題