我正在开发一个AngularJS应用程序。我正在尝试对其进行一些测试。不幸的是,我似乎无法让它工作。我只是在我的控制台窗口中收到一个错误,上面写着:"未捕获的引用错误:未定义环境"。我已经复制了代码以使用 Jasmine 在 AngularJS 中运行测试。我能看到的唯一区别是我引用的是 CDN。我这里有一个jsfiddle,代码发布在下面。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Test Results</title>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/jasmine.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/boot.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular-mocks.js"></script>
<script type="text/javascript" src="res/js/angular-scenario.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.0.0/jasmine.css" />
<!-- Load the Test Files-->
<script type="text/javascript" src="e2e/tests.e2e.js"></script>
</head>
<body>
<a href="#" onclick="env.execute()">run tests</a>
</body>
</html>
我的 tests.e2e.js 文件的内容在小提琴中。作为参考,代码发布如下:
'use strict';
describe('MyApp', function() {
describe('MyPage', function () {
it('should test', function () {
expect(true).toBe(false);
});
});
});
我做错了什么?
这就是使用 PLUNKER进行测试的方式。按预期工作。
茉莉花在页面加载时执行。
<script type="text/javascript">
(function() {
var jasmineEnv = jasmine.getEnv();
jasmineEnv.updateInterval = 1000;
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
var currentWindowOnload = window.onload;
window.onload = function() {
if (currentWindowOnload) {
currentWindowOnload();
}
execJasmine();
};
function execJasmine() {
jasmineEnv.execute();
}
})();
</script>
我希望这会有所帮助。