AngularJS中的Jasmine自定义启动 - 按钮上的执行测试单击

时间:2015-04-14 15:22:44

标签: angularjs jasmine

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

如果我使用来自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>

1 个答案:

答案 0 :(得分:1)

我们通过为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/