В материале.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')
при выполнении вышеуказанного теста с использованием адаптера для тестирования наглости. Другими словами, в строке var ns2
возникает исключение, и я никогда не дохожу до последнего утверждения ok()
. Что я делаю не так? Разве qUnit/Chutzpah не должен был запускать код в stuff.js перед попыткой запустить тест?
foo(window.MyNamespace || (window.MyNamespace = {}));
перед выполнением своих утверждений, я получу неправильное пространство имен и плохое подпространство имен. Не кажется правильным. - person Patrick Szalapski   schedule 29.01.2013