EmberJS测试重置未完全重置或异步问题

如果我改变了我的Ember / Qunit测试的顺序,他们会通过.为什么这样,或者我能做些什么来避免它呢?

编辑:我注意到Qunit测试以或多或少的随机顺序运行(无论哪个先准备好?),无论如何,当TEST B跟随TEST A时,它都失败了.

似乎App.reset()没有完全重置或者有一些我没有看到的异步问题.

规范

module("Integration Tests", {
  setup: function() {
    console.log('reset');
    Encompass.reset();
  }
});

test("TEST A", function() {
  visit("/workspaces").then(function() {
    ok(true);
  });
});

test("TEST B", function() {
  visit('/workspaces/1/submissions/1').then(function() {
    ok(find('li

').length, "the folder is there"); }); });

我在网上有两个版本的测试.

> A then B, B fails
> B then A, both pass

这是使用夹具适配器与一堆模型(可能不是所有正确的关系,但我仍然期望测试是一致的,无论顺序如何)

最佳答案 App.reset()重置ember应用程序本身,它不重置Ember Model / Data.

您需要将unloadAll用于Ember数据:

this.store.unloadAll('post');

对于Ember Model,您将使用clearCache:

App.Post.clearCache();

在测试A上运行ok之前,您是否尝试过允许访问解决?

test("TEST A", function() {
  visit("/workspaces").then( function(){
    ok(true);
  });
});
点赞