我们想使用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>
答案 0 :(得分:1)
我们通过为Jasmin编写自己的自定义启动js文件解决了这个问题。我们删除了启动jasmin.execute()测试的window.onLoad事件。
在控制器中,我们使用RequireJs动态加载规范测试,然后运行它们。
有关详细信息,请参阅此文章。