如果我更改我的 Ember/Qunit 测试的顺序,它们就会通过。这是为什么,或者我可以做些什么来避免它?
编辑:我注意到 Qunit 测试以或多或少的随机顺序运行(以先准备好的为准?),无论如何,当测试 B 跟随测试 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");
});
});
我有两个版本的在线测试。
这是将 fixture 适配器与一堆模型一起使用(可能不是所有正确的关系,但我仍然希望无论顺序如何,测试都是一致的)
最佳答案
App.reset()
重置 ember 应用程序本身,它不会重置 Ember 模型/数据。
您需要为 Ember 数据使用 unloadAll
:
this.store.unloadAll('post');
对于 Ember 模型,您将使用 clearCache
:
App.Post.clearCache();
您是否尝试过在测试 A 运行正常之前允许访问解决?
test("TEST A", function() {
visit("/workspaces").then( function(){
ok(true);
});
});
关于testing - EmberJS 测试重置未完全重置或异步问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851136/