这些是我迄今为止编写的测试。第一个断言通过。第二次我得到错误:TypeError: undefined is not a function
。
/*global describe, it, assert */
App.rootElement = '#emberTestingDiv';
App.setupForTesting();
App.injectTestHelpers();
module('Integration Tests', {
setup: function() {
App.reset();
}
});
// Tests
test('search terms?', function() {
App.mainSearcher.params.q = 'our keywords';
equal(App.mainSearcher.params.q, 'our keywords');
});
test('router?', function() {
visit('/search?q=method&sort=patAssignorEarliestExDate%20desc');
andThen(function(){
equal(find('title').text(), 'method');
});
});
我不知道我为什么会这样。我正在使用grunt contrib qunit,所以我很好奇我是否在通过grunt/npm使用Ember应用程序设置qunit时出错。
但我不认为这是因为第一次考试就要通过了。
如果有任何帮助,我将不胜感激。
谢谢!
编辑:
这是的全部错误
Died on test #1 at file:///Users/jwhite/Documents/workspace/uspto-aotw/front-end/test/spec/test.js:21:1: undefined is not a function
Source: TypeError: undefined is not a function
第21行是第二次测试的第一行:
test('router?', function() {
我的猜测?第一次测试运行中的某个内容"取消设置"全局test
变量/方法。我的建议是使用QUnit API的完全合格版本:
/*global describe, it, assert */
App.rootElement = '#emberTestingDiv';
App.setupForTesting();
App.injectTestHelpers();
QUnit.module('Integration Tests', { // qualified
setup: function() {
App.reset();
}
});
// Tests
QUnit.test('search terms?', function(assert) { // qualified (with `assert` arg)
App.mainSearcher.params.q = 'our keywords';
assert.equal(App.mainSearcher.params.q, 'our keywords'); // qualified
});
QUnit.test('router?', function(assert) { // qualified (with `assert` arg)
visit('/search?q=method&sort=patAssignorEarliestExDate%20desc');
andThen(function(){
assert.equal(find('title').text(), 'method'); // qualified
});
});
如果这是有效的,那么我的假设是正确的,但我不知道在你的第一次测试运行中会发生什么,因为它并没有真正起到任何作用。我想它可能是App.reset()
中的东西,但为什么第一次定义test()
?
无论如何。。。请先尝试限定的方法调用,这可能是一个快速修复方法。