我試圖將humane.js notification library合併到我的AngularJS應用程序中。我已經將humane.js使用包裝到了Angular服務中,並且該應用程序正常工作。但是,當我試圖寫單元測試的角度服務,我得到嘗試執行該服務的第一次測試時,出現以下錯誤:AngularJS單元測試'ReferenceError:人性化未定義'
ReferenceError: humane is not defined
我karma.conf文件中包含的參考humane.js文件:
files: [
'bower_components/angular/angular.js',
'bower_components/angular-route/angular-route.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/messageformat/messageformat.js',
'bower_components/angular-translate/angular-translate.js',
'bower_components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js',
'bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js',
'bower_components/momentjs/moment.js',
'other_components/highcharts-ng/src/directives/highcharts-ng.js',
'other_components/keylines/keylines.js',
'other_components/logging/log4javascript.js',
'bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
'bower_components/humane-js/humane.js',
'scripts/*.js',
'scripts/*/*.js',
'resources/defaultTranslations.js',
'test/unit/*/*.js',
'views/*.html'
],
我找不出什麼問題。如果我將Humane.js替換爲其他類似的通知庫 - alertify.js - 並執行完全相同的操作,則不會出現錯誤。
我錯過了什麼?就像我說的,應用程序的工作原理,包括通知部分。只有單元測試受到影響。該Humane.js模塊使用一些不尋常的(對我)自動執行模塊的語法:
;!function (name, context, definition) {
if (typeof module !== 'undefined') module.exports = definition(name, context)
else if (typeof define === 'function' && typeof define.amd === 'object') define(definition)
else context[name] = definition(name, context)
}('humane', this, function (name, context) {
...這裏模塊定義...
return new Humane()
})
我想知道如果這是混淆了某種程度上的業力加載器。另一個庫(alertify.js)沒有這個結構。
您能否介紹一下最終使用的成品有角包裝?這將是非常有益的! –
恐怕我發佈後不久就放棄嘗試使用humane.js,所以我沒有任何東西可以提供給你。抱歉! –