这些是我到目前为止所写的测试。第一个断言通过了。对于第二个我得到错误: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() {
答案 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()
?
在任何情况下......首先尝试合格的方法调用,可以快速修复。