2013-03-27 100 views
21

當我運行SpecRunner HTML文件時出現此錯誤。ReferenceError:插入未定義

環顧四周,這是由於angular-mocks.js未被引用。在我的情況下,它被引用。

SpecRunner.html:

<link rel="stylesheet" type="text/css" href="lib/jasmine-1.3.1/jasmine.css"> 
    <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine.js"></script> 
    <script type="text/javascript" src="lib/jasmine-1.3.1/jasmine-html.js"></script> 
    <script type="text/javascript" src="lib/angular-mocks.js"></script> 

    <!-- include source files here... --> 
    <script type="text/javascript" src="../main/static/js/controllers/norm-definitions-controller.js"></script> 

當測試運行,我得到這個異常:ReferenceError: inject is not defined

我可以看到angular-mocks.js被引用,它不是一個緩存的問題,因爲我可以用它看螢火蟲。

看在angular-mocks.js我可以看到完整的參考angular.mock.inject = function() { ... },我也試過這個作爲參考,並得到例外ReferenceError: angular is not defined

+1

確保您沒有腳本依賴。 – 2013-03-27 23:57:49

回答

25

您仍然需要angular.js lib。我沒有在你的腳本中看到它。它應該在angular-mock.js之前。

1

對屬於同時加入的業力和茉莉花到測試項目中的錯誤,確保

  • 您angular.js和角嘲笑JS文件都具有相同的版本。
  • 茉莉花版本兼容angularjs版本,請參考茉莉花官方網站,以確保沒有語法錯誤。
  • 指的是角度js官方站點上的測試編排,以遵循單元測試方法。

以上步驟有助於避免大多數常見錯誤。