AngularJS 内的 Jasmine 自定义启动 - 在按钮单击时执行测试

Jasmine Custom Boot Within AngularJS - Executing Tests On Button Click

我们想测试 API 对 jasmine 的使用。我们想 运行 通过创建一个带有按钮的调试选项卡来启动测试,从而从我们的应用程序中进行测试。

如果我使用来自 jasmine 的标准 boot.js,测试会成功启动,但我们无法控制它们何时 运行。

如果我创建自己的自定义启动 js 文件,我会收到一条错误消息,指出描述未定义。

在单击按钮时启动我们自己的测试的最佳方法是什么?

<!DOCTYPE html>
<html ng-app="plunker">

  <head>
    <meta charset="utf-8" />
    <title>AngularJS Plunker</title>

       <script data-require="jasmine@2.0.0rc2" data-semver="2.0.0rc2" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 
      <link data-require="jasmine@2.0.0rc2" data-semver="2.0.0rc2" rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.2.1/jasmine.css" />
    <script data-require="jasmine@2.0.0rc2" data-semver="2.0.0rc2" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.2.1/jasmine.js"></script>
    <script data-require="jasmine@2.0.0rc2" data-semver="2.0.0rc2" src="https://cdnjs.cloudflare.com/ajax/libs/jasmine/2.2.1/jasmine-html.js"></script>

    <link rel="stylesheet" href="style.css" />
    <script data-require="angular.js@1.2.x" src="https://code.angularjs.org/1.2.16/angular.js" data-semver="1.2.16"></script>


    <script src="app.js"></script>

 <script src="test.spec.js"></script>
  </head>

  <body ng-controller="MainCtrl">
    <p>Hello  {{name}}!</p>

    <button ng-click='runTest()'> Run Tests </button>
  </body>

</html>

我们通过为 Jasmin 编写自己的自定义启动 js 文件解决了这个问题。我们删除了启动 jasmin.execute() 测试的 window.onLoad 事件。

在控制器中,我们使用 RequireJs 动态加载规范测试,然后 运行 它们。

有关详细信息,请参阅本文。

http://blogs.lessthandot.com/index.php/webdev/uidevelopment/javascript/unit-testing-with-jasmine-2-0-and-require-js/