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

时间:2013-11-08 03:34:21

标签: testing ember.js tdd qunit

如果我改变了我的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");
  });
});

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

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

1 个答案:

答案 0 :(得分:2)

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);
  });
});