Javascript ViewModel的Qunit测试

Javascript ViewModel的Qunit测试,javascript,knockout.js,qunit,Javascript,Knockout.js,Qunit,我的ViewModel定义如下: (function(ko, myApp) { myApp.HomeViewModel = function () { this.message = ko.observable("Helloy....."); this.toolBarIsVisible = ko.observable(true); this.isDataDirectoryManager = ko.observable(true); }; myApp.HomeViewM

我的ViewModel定义如下:

(function(ko, myApp) {
myApp.HomeViewModel = function () {
    this.message = ko.observable("Helloy.....");
    this.toolBarIsVisible = ko.observable(true);
    this.isDataDirectoryManager = ko.observable(true);
};



myApp.HomeViewModel.prototype = {
    sayHi: function () {
        this.message("World");
    }
};

ko.applyBindings(new myApp.HomeViewModel());
}(window.ko, window.myApp || {}));
如何编写实例化myApp.HomeViewModel实例的qunit测试

谢谢
Martin

您需要在测试文件中包含应用程序代码。测试代码可以是这样的:

    (function (ko, myApp) {

        var vm;
        module( "HomdeViewModel", {
            setup: function() {
                vm = new myApp.HomeViewModel();
            },
            teardown: function() { }
        });

        test('Can create HomdeViewModel', function () {
            ok(vm instanceof myApp.HomeViewModel);
        });

        test('Sets default values', function () {
            strictEqual(vm.message(), 'Helloy.....');
            ok(vm.toolBarIsVisible());
            ok(vm.isDataDirectoryManager());
        })

        test('Can change message', function () {
            vm.sayHi();
            strictEqual(vm.message(), 'World');
        });

    })(window.ko, window.myApp)
下面是一个JSFIDLE示例: