2016-03-04 126 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

相关问题