无法在验收测试中导入 andThen - ember.js

Unable to import andThen in acceptance test - ember.js

我是 ember.js 项目的新手,我正在尝试编写我的第一个验收测试来测试我的根路径是否有效。我正在关注下面的 tutorial . I was unable to import "module-for-acceptance" from the helpers as its deprecated. when i run the below test i am getting an error which says (0 , _testHelpers.andThen) is not a function. I had also gone through ember js discussion post 并导入 andThen。它似乎不起作用。我怎样才能导入 andThen 并使我的测试工作。谢谢。

测试用例

import { module, test } from 'qunit';
import { visit, currentURL ,andThen } from '@ember/test-helpers';
import { setupApplicationTest } from 'ember-qunit';


module('Acceptance | list rentals', function(hooks) {
  setupApplicationTest(hooks);

  test('should redirect to rentals route', function (assert) {
    visit('/');
    andThen(function() {
      assert.equal(currentURL(), '/rentals', 'should redirect automatically');
    });
  });

});

日志

Died on test #1     at Object.<anonymous> (http://localhost:7357/assets/tests.js:8:21)
    at processModule (http://localhost:7357/assets/test-support.js:3765:16)
    at module (http://localhost:7357/assets/test-support.js:3790:4)
    at Module.callback (http://localhost:7357/assets/tests.js:6:21)
    at Module.exports (http://localhost:7357/assets/vendor.js:111:32)
    at requireModule (http://localhost:7357/assets/vendor.js:32:18)
    at TestLoader.require (http://localhost:7357/assets/test-support.js:13736:9): (0 , _testHelpers.andThen) is not a function@ 60 ms
Source:  
TypeError: (0 , _testHelpers.andThen) is not a function
    at Object.<anonymous> (http://localhost:7357/assets/tests.js:10:32)
    at runTest (http://localhost:7357/assets/test-support.js:5618:30)
    at Test.run (http://localhost:7357/assets/test-support.js:5604:6)
    at http://localhost:7357/assets/test-support.js:5831:12
    at processTaskQueue (http://localhost:7357/assets/test-support.js:5197:24)
    at advanceTaskQueue (http://localhost:7357/assets/test-support.js:5182:4)
    at Object.advance (http://localhost:7357/assets/test-support.js:5168:4)
    at unblockAndAdvanceQueue (http://localhost:7357/assets/test-support.js:6944:20)
    at begin (http://localhost:7357/assets/test-support.js:6978:5)
    at http://localhost:7357/assets/test-support.js:6219:6
Tried to restart test while already started (test's semaphore was 0 already)@ 61 ms
Source:  
    at resume (http://localhost:7357/assets/test-support.js:6171:5)
    at done (http://localhost:7357/assets/test-support.js:6362:7)
    at Class.asyncEnd (http://localhost:7357/assets/test-support.js:13822:9)
    at asyncEnd (http://localhost:7357/assets/vendor.js:68040:15)
    at http://localhost:7357/assets/vendor.js:67197:31
    at invoke (http://localhost:7357/assets/vendor.js:65509:16)
    at Queue.flush (http://localhost:7357/assets/vendor.js:65400:13)
    at DeferredActionQueues.flush (http://localhost:7357/assets/vendor.js:65597:21)

Ember 测试已转移到 async/await 模式,而不是使用 andThen 和其他全局测试助手。该教程适用于相当旧的 Ember 版本,使用 more recent guide 会取得更大的成功。即使您还没有准备好更新到更新版本 ember,我仍然建议您遵循新的测试模式,因为它们更易于读写。

如果你想用 andThen 测试它,你不需要导入它,因为它是作为全局提供的,但你需要确保你的测试依赖项是正确的。我首先将您当前的 package.jsondefault for ember apps at that time 进行比较,您可能需要降级一些软件包才能访问旧的导入和全局测试助手。