Jasmine env没有定义

时间:2014-03-29 13:30:06

标签: jquery angularjs jasmine

我正在使用AngularJS应用。我试图对它进行一些测试。不幸的是,我似乎无法让它发挥作用。我刚刚在控制台窗口中收到错误消息:"未捕获的ReferenceError:未定义env"。我已复制代码以在AngularJS with Jasmine中运行测试。我能看到的唯一区别是我引用了CDN。我有一个jsfiddle here,代码发布在下面。

<!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);
        });
    });
});

我做错了什么?

1 个答案:

答案 0 :(得分:0)

这是您使用PLUNKER进行测试的方法。按预期工作。

Jasmine在页面加载时执行。

<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>

我希望这会有所帮助。