簡體   English   中英

QUnit沒有像我期望的那樣運行手動命名空間的安裝代碼?

[英]QUnit isn't running manually namespaced setup code like I would expect?

在stuff.js中:

function init() {
    return "works";
}

(function(ParentNamespace) {
    ParentNamespace.MySubNamespace = {};
})(window.MyNamespace || (window.MyNamespace = {}));

在我的測試JS文件中:

/// <reference path="../../../project1/Shared/sub1/Javascript/stuff.js" />
test("foo test", function () {
    deepEqual(init(), "works", "couldn't access source JS file");
    ok(window, "no window context");
    var ns = window.MyNamespace;
    ok(ns in window, "namespace is bad");
    var ns2 = window.MyNamespace.MySubNamespace;
    ok(ns2 in window, "subnamespace is bad");
});

使用Chutzpah測試適配器運行上述測試時,我得到'undefined' is not an object (evaluating 'window.MyNamespace.MySubNamespace') 也就是說,在var ns2行上引發了一個異常,而我從沒有到最后的ok()斷言。 我究竟做錯了什么? 在嘗試運行測試之前,qUnit / Chutzpah是否應該已經在stuff.js中運行了代碼?

我改變了測試。 后續測試工作...

/// <reference path="../../../project1/Shared/sub1/Javascript/stuff.js" />
test("foo test", function () {
deepEqual(init(), "works", "couldn't access source JS file");
ok(window, "no window context");    
ok('MyNamespace' in window, "namespace is bad");    
ok('MySubNamespace' in window.MyNamespace, "subnamespace is bad");
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM