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