4

如果我更改 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[title="Kyle Folder 1"]').length, "the folder is there");
  });
});

我有两个版本的在线测试。

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

4

1 回答 1

2

App.reset()重置 ember 应用程序本身,它不会重置 Ember 模型/数据。

您需要使用unloadAllEmber 数据:

this.store.unloadAll('post');

对于 Ember 模型,您将使用clearCache

App.Post.clearCache();

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

test("TEST A", function() {
  visit("/workspaces").then( function(){
    ok(true);
  });
});
于 2013-11-08T05:28:26.100 回答