我在我的 JavaScript 中使用了显示模式和初始类实例化。我也在使用 Jasmine 来测试这个类,但需要一种方法来在每次测试运行之前重置 myNamespace.myViewModel 的状态(这是一个简单的示例,但想象一个具有多个变量的复杂视图模型)。
这是一个示例类:
myNamespace.myViewModel = (function(ko, $, window){
var init = function(){},
name = 'bob',
nameSetter = function(value){ name = value; };
return {
Init: init,
Name: name,
NameSetter: nameSetter
};
}(ko, $, window));
在茉莉花中,我从以下内容开始:
describe("VM Specs", function () {
'use strict';
var vm;
beforeEach(function(){
// the vm isn't re-created since it is a "static" class in memory
vm = myNameSpace.myViewModel;
});
it("should set name", function(){
vm.NameSetter('joe');
expect(vm.Name === 'joe').toBeTruthy();
});
it("should have the default state, even after the other test ran", function(){
expect(vm.Name === 'bob').toBeTruthy();
});
});
有没有办法做到这一点?