我开始学习如何测试Angular应用程序,并遇到了一些问题。
我使用Yeoman生成了一个Angular应用程序。 yo angular --minsafe AppName
然后生成了服务yo angular:service MyService
在服务中写了一个简单的方法,并对它进行测试,以确保一切正常。我跑了grunt test
并且测试通过了。
现在它变得有趣了,因为我使用bower install underscore
在混合中添加了Underscore,并在<script>
中为其添加了index.html
标记。
然后我向服务方法添加了一些简单的代码,只是_.map([1,2,3], function(el){return el+1});
以查看Underscore是否正常工作。
我再次运行测试grunt test
,但未能说明_ is not defined
。
我认为,因为Underscore将_变量附加到窗口对象,它将可用于测试。我错了吗?
此外,当我在浏览器中运行应用程序时,Underscore已定义并正在运行。
所以,我的问题是,你如何测试使用Underscore的Angular应用程序?这是一个常见问题还是我做错了什么?
谢谢, 斯托
答案 0 :(得分:9)
如果您看到Yeoman生成的karma.conf.js
文件,您会看到不会自动添加凉亭组件。
// list of files / patterns to load in the browser
files = [
JASMINE,
JASMINE_ADAPTER,
'app/bower_components/angular/angular.js',
'app/bower_components/angular-mocks/angular-mocks.js',
'app/scripts/*.js',
'app/scripts/**/*.js',
'test/mock/**/*.js',
'test/spec/**/*.js'
];
只需将下划线文件夹添加到它,您就不会有任何问题。
答案 1 :(得分:1)
在2.0之前的Jasmine版本中不推荐使用JASMINE
或JASMINE_ADAPTER
等常量。请改用frameworks: ['jasmine']
文件中的karma.conf.js
。