Javascript ko在Chutzpah中未定义错误

Javascript ko在Chutzpah中未定义错误,javascript,jquery,knockout.js,requirejs,chutzpah,Javascript,Jquery,Knockout.js,Requirejs,Chutzpah,我正试图为我的SPA项目编写单元测试。我们使用了Durandal(框架)、Knockout(绑定)和RequireJs 我已经在VisualStudio2012中安装了Chutzpah 当我为视图模型运行测试时,它将我抛出错误,即使敲除js和其他js加载正确 未捕获引用错误:未定义ko 我的Json配置代码: 我的配置Js代码: myfirsttest.Js代码: 视图模型代码: Jquery的配置工作得非常完美,因为knockout也与之相同。但这是错误的 有什么想法/建议为什么会出错 我需要

我正试图为我的SPA项目编写单元测试。我们使用了
Durandal(框架)、Knockout(绑定)和RequireJs

我已经在VisualStudio2012中安装了Chutzpah

当我为视图模型运行测试时,它将我抛出错误,即使敲除js和其他js加载正确

未捕获引用错误:未定义ko

我的Json配置代码:

我的配置Js代码:

myfirsttest.Js代码:

视图模型代码:

Jquery的配置工作得非常完美,因为knockout也与之相同。但这是错误的

有什么想法/建议为什么会出错

我需要单独加载ko(淘汰赛)吗

编辑1:

我已尝试将
knockout
更改为
ko
它给了我错误
Uncaught error:scripterror for:knockout

编辑2:

当我应用这个解决方案时,我面临的问题是,那些现有的代码文件需要进行大量的更改,并且文件数量以数百计。从
Init.Js
中,我们加载了Jquery和Knockout。如下图所示

requirejs.config({
    paths: {
        'text': '../Scripts/text',
        'durandal': '../Scripts/durandal',
        'plugins': '../Scripts/durandal/plugins'
    }
});

define('jquery', [], function () {
    return jQuery;
});

define('knockout', [], function () {
    return ko;
});
因此,在任何viewmodel中,我们都可以将
knockout的实例作为ko
,而无需在每个veiwmodel中为knockout声明require js内容(如您所建议的)

但当我在Chutzpah宣言中尝试同样的方法时,这是行不通的。不知道为什么


希望您理解这个问题。

在您的问题中显示的两个模块中,您都使用了
ko
,但没有在依赖项列表中列出
knockout
。这是获得错误的可靠方法。修改模块以在依赖项中列出
knockout
,并向给
define
的回调添加相应的参数。比如说,

define(['knockout', 'plugins/dialog'], function (ko, dialog) {

在您的问题中显示的两个模块中,您都使用了
ko
,但您没有在依赖项列表中列出
knockout
。这是获得错误的可靠方法。修改模块以在依赖项中列出
knockout
,并向给
define
的回调添加相应的参数。比如说,

define(['knockout', 'plugins/dialog'], function (ko, dialog) {

谢谢你的回答很有帮助。请看我的编辑2。谢谢你的回答很有帮助。请看我的编辑2。
define(['plugins/dialog'], function (dialog) {
    var subscriberList = ko.observableArray(); //Getting Error here - while loading the Js for Unit Testing

    var JsQ = $; //Getting JQUERY members here. // Works good.

    //Other Logics goes here

    return {
        subscriberList : subscriberList,
        JsQ : JsQ 
    };
});
requirejs.config({
    paths: {
        'text': '../Scripts/text',
        'durandal': '../Scripts/durandal',
        'plugins': '../Scripts/durandal/plugins'
    }
});

define('jquery', [], function () {
    return jQuery;
});

define('knockout', [], function () {
    return ko;
});
define(['knockout', 'plugins/dialog'], function (ko, dialog) {