我正在嘗試使用intern測試簡單節點模塊。該模塊是AMD模塊。我遇到了幾個問題使用實習生測試節點模塊Js-無法解析'require'
如果模塊定義如下,我得到的錯誤「MODULENAME」有 沒有方法「地圖」「
define('moduleName',[]function(require){ var r= require('request'); })
如果模塊定義如下沒有moduleName,我看到這個 錯誤「undefined不是函數」 - 我猜它不能解決'require'
define([]function(require){ var r= require('request'); })
這裏是我的測試看起來如何
define([
'intern!object',
'intern/chai!assert',
'/src/api/nameApi'
], function (registerSuite, assert,nameApi) {
registerSuite({
name: 'GetName Test',
getName: function() {
var nameFromApi = nameApi.getName();
assert(nameFromApi!= null,'name is not null');
}
});
});
謝謝你的回答。這是一個錯誤的請求,現在改變了這個問題。我在依賴關係中用'['require']'嘗試過,但它無法加載'request'模塊。我是否必須在'loader'的'test/intern.js'中指定'request'模塊。如果是的話如何加載node_modules中的所有模塊? '嘗試在contextRequire(/Users/userId/Documents/gitRepos/MyProject/node_modules/intern/node_modules/dojo/dojo.js:255:12)處請求卸載的模塊請求 ' – kiran
答案完全相同。您的定義調用是錯誤的,遺漏了您要加載的依賴關係。請閱讀http://dojotoolkit.org/documentation/tutorials/1.9/modules/和/或http://requirejs.org/docs/api.html#defdep以瞭解AMD依賴關係如何工作。 –
這裏是我的模塊定義的外觀,不要認爲這沒有什麼錯。 'define(function(require)var foo = require('request'); });' 如果這個定義是正確的,我如何確保'request'和其他npm_modules被加載。應用程序能夠加載'請求'模塊,但不能加載測試。那麼,如何確保測試加載應用程序加載的所有模塊 – kiran