Javascript AngularJS测试Jasmine无法调用;角度模拟模块“;使用angular-mocks.js时
我试图让一个基本的单元测试正常工作,但在使用angular-mocks.js时遇到了一个问题。希望这段代码能解释我的情况Javascript AngularJS测试Jasmine无法调用;角度模拟模块“;使用angular-mocks.js时,javascript,unit-testing,angularjs,jasmine,Javascript,Unit Testing,Angularjs,Jasmine,我试图让一个基本的单元测试正常工作,但在使用angular-mocks.js时遇到了一个问题。希望这段代码能解释我的情况 describe("peconfigApp", function () { beforeEach(function() { angular.mock.module('peconfigApp'); }); describe("Binaries Controller", function () { it("should
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)
TypeError:对象#没有方法“module”
在空。(http://localhost:58141/Tests/js/controller-tests.js:4:22)
在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>
要在单元测试中设置
模块
,通常需要执行以下操作:
beforeEach(module('peconfigApp'));
只要您的配置设置正确(拉入正确的文件),就应该允许您在测试中寻址模块
非常好,值得一读
希望这能有所帮助。我在茉莉花加载之后移动了角度模拟加载
<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>
这使它起作用。愚蠢的问题,我一定是在阅读文档和教程时错过了这一点。我刚刚花了一个小时试图让jasmine阅读我的控制器等。正如Chris所说,一切都必须按正确的顺序进行 my index.html用于运行jasmine:
<html ng-app="myApp">
<body>
<link href="jasmine.css" rel="stylesheet" />
<!-- Init Angular -->
<script src="../angular.min.js"></script>
<script src="../angular-resource.min.js"></script>
<!-- My code -->
<script src="../app/controller.js"></script>
<script src="../app/main.js"></script>
<script src="../app/service.js"></script>
<!-- Init Jasmine -->
<script src="../jasmine.js"></script>
<script src="../jasmine-html.js"></script>
<script src="../angular-mocks.js"></script>
<!-- Insert spec's-->
<script src="spec/controller.spec.js"></script>
<!-- And GO! -->
<script src="runner.js"></script>
<!-- A basic test to check "connectivity" -->
<div id="container" ng-controller="myCtrl">
<h1>Say something... {{data.variablehere}}</h1>
</div>
<div id="HTMLReporter" class="jasmine_reporter"></div>
</body>
</html>
说点什么。。。{{data.variablehere}