我有一个简单的模型类,我用它来存储一些全局状态
App.Person = Ember.Object.extend({
firstName: '',
lastName: ''
});
App.Person.reopenClass({
people: [],
add: function(hash) {
var person = App.Person.create(hash);
this.people.pushObject(person);
},
remove: function(person) {
this.people.removeObject(person);
},
find: function() {
var self = this;
$.getJSON('/api/people', function(response) {
response.forEach(function(hash) {
var person = App.Person.create(hash);
Ember.run(self.people, self.people.pushObject, person);
});
}, this);
return this.people;
}
});
当我使用 RC6 和 ember-testing 调用 App.reset() 时,我注意到全局人员数组中的任何状态都在测试之间保持不变。我确实看到一个日志显示在测试之间调用了拆卸,它只是没有清除人数。如何在 QUnit 拆解中重置它?
module('integration tests', {
setup: function() {
Ember.testing = true;
this.server = sinon.fakeServer.create();
this.server.autoRespond = true;
Ember.run(App, App.advanceReadiness);
},
teardown: function() {
this.server.restore();
App.reset(); //won't kill that global state ...
}
});
更新
如果你想在 RC6 中模拟“/”路由,一个错误会阻止你的模型钩子在你模拟 xhr 后再次触发(我希望在 RC7+ 中看到这个问题)