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();
});
});
これを行う方法はありますか?