我正在尝试进行基本单元测试,但在使用 angular-mocks.js 时遇到了问题。希望这段代码能解释我的情况。
describe("peconfigApp", function () {
beforeEach(function() {
angular.mock.module('peconfigApp');
});
describe("Binaries Controller", function () {
it("should work", function () {
expect(true).toBe(true);
});
});
});
Jasmine 结果错误:
TypeError: Object #<Object> has no method 'module'
at null.<anonymous> (http://localhost:58141/Tests/js/controller-tests.js:4:22)
at jasmine.Block.execute (http://localhost:58141/Tests/lib/jasmine.js:1064:17)
我在代码的不同部分放置了警报,以验证 angular-mocks.js 在我的测试加载和运行之前正在加载,所以我很确定加载不是问题。
<script type="text/javascript" src="../lib/angular.min.js"></script>
<script type="text/javascript" src="../lib/angular-mocks.js"></script>
<script type="text/javascript" src="lib/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-html.js"></script>
<script type="text/javascript" src="../js/controllers.js"></script>
<script type="text/javascript" src="js/controller-tests.js"></script>
最佳答案
我在 jasmine 加载后移动了 angular-mocks 加载。
<script type="text/javascript" src="../lib/angular.min.js"></script>
<script type="text/javascript" src="lib/jasmine.js"></script>
<script type="text/javascript" src="lib/jasmine-html.js"></script>
<script type="text/javascript" src="../lib/angular-mocks.js"></script>
<script type="text/javascript" src="../js/controllers.js"></script>
<script type="text/javascript" src="js/controller-tests.js"></script>
这使它工作。愚蠢的问题,我一定是在阅读文档和教程时错过了这个问题。
关于javascript - 使用 angular-mocks.js 时,使用 Jasmine 进行的 AngularJS 测试无法调用 "angular.mock.module",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109235/