0

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");
});

'undefined' is not an object (evaluating 'window.MyNamespace.MySubNamespace')Chutzpah Test Adapter を使用して上記のテストを実行すると取得されます。つまり、var ns2行で例外がスローされ、最後のok()アサーションに到達することはありません。私は何を間違っていますか?qUnit/Chutzpah は、テストを実行する前に、stuff.js でコードを実行すべきではありませんか?

4

1 に答える 1

1

テストを変更しました。次のテスト作品...

/// <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");
});
于 2013-01-30T06:44:05.880 に答える