Qunit:TypeError:undefined不是函数

时间:2014-10-28 19:21:28

标签: ember.js gruntjs qunit ember-qunit

这些是我到目前为止所写的测试。第一个断言通过了。对于第二个我得到错误: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() {

1 个答案:

答案 0 :(得分:1)

我的猜测?第一次测试运行中的某些内容“取消设置”全局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()

在任何情况下......首先尝试合格的方法调用,可以快速修复。