1
我想測試我製作的原型函數。評估助手與測試文件是相同的上下文
我的設立由3個文件:
Base.js - 基本文件,所有我的第二個文件的共同點
function prop(to, name, func) { Object.defineProperty(to.prototype, name, { value: func, writable: true, configurable: true }); return func; }
Array.js - 文件修改給定對象的原型。
prop(Array, 'hasPresent', function(what) { return !!~this.indexOf(what) });
/tests/Array.js - 測試本身
describe('hasPresent()',function(){ it('number', function(done){ expect([0,1,2].hasPresent(0)).toBe(true) done() }) })
這一切是從做的NodeJS,即手錶文件更改。我擔心的是,它會從第二個文件(prop is not defined ... at Array.js:1
)返回錯誤。這對我說,這些文件不在相同的上下文中進行評估。有什麼辦法可以做到這一點?或者當從節點啓動時,如何在測試文件中獲得__direcotory
變量。
我的設置中的NodeJS:
jasmine.loadConfig({
spec_files: ['Base.js','Array.js']
helpers: ['Base.js','Array.js']
})
jasmine.execute(['tests/Array.js']);
PS:我試圖把EVAL在tests/Array.js
,但加載時的工作目錄遺忘,所以我將不得不使用絕對路徑,如果有什麼辦法解決這個問題,這將是偉大的。
我明白了,這使得我模塊方式是一種方法,但我的庫僅包含原型,之後將文件發送給瀏覽器,所以我不想修改它們的節點。 – Akxe