没有specRunner.html的Jasmine规范 - JS依赖

4

我有一个应用程序的单元测试,其中我想要测试的javascript依赖于其他JS框架(underscore.js,backbone.js,jQuery...)。因此,在设置specRunner.html时,我也添加了这些文件:

....
<head>
  <title>p13n.js Spec Runner</title>

  <link rel="shortcut icon" type="image/png" href="./jasmine-standalone-1.3.1/lib/jasmine-1.3.1/jasmine_favicon.png">
  <link rel="stylesheet" type="text/css" href="./jasmine-standalone-1.3.1/lib/jasmine-1.3.1/jasmine.css">
  <script src="./jasmine-standalone-1.3.1/lib/jasmine-1.3.1/jasmine.js"></script>
  <script src="./jasmine-standalone-1.3.1/lib/jasmine-1.3.1/jasmine-html.js"></script>

  <!-- include source files here... -->
  <script src=".../jquery.min.js" ></script>
  <script src=".../underscore-min.js"></script>
  <script src=".../backbone-min.js"></script>
  <script src=".../MyApplication-file.js"></script>

  <!-- include spec files here... -->
  <script src=".../spec/MyApplication-spec.js"></script>

  <script type="text/javascript">
    (function() {
      var jasmineEnv = jasmine.getEnv();
      jasmineEnv.updateInterval = 1000;

      var htmlReporter = new jasmine.HtmlReporter();
...

然而,这对于使用类似Grunt工具进行自动化测试的情况是行不通的。我不能依赖specRunner.html来加载我的依赖项,因为该 .html 文件没有被使用。您如何管理依赖关系?
- 我应该测试经过压缩和压缩的应用程序代码+供应商吗? - 我应该在我的单元测试规范中使用像require.js这样的工具吗? - Grunt 是否以另一种方式解决了这个问题?
1个回答

0
根据您使用的IDE或编辑器,您可以以与添加文件引用以获取代码完成相同的方式指定依赖项。
例如,在Visual Studio中使用的格式如下:
/// <reference path="~/lib/jasmine-2.0.0/jasmine.js" />
/// <reference path="~/lib/jasmine-2.0.0/jasmine-html.js" />
/// <reference path="~/lib/jasmine-2.0.0/console.js" />
/// <reference path="~/lib/jasmine-2.0.0/boot.js" />

/// <reference path="../../../../<ProjectName>/javascript/shared/jquery-1.7.2.min.js" />
/// <reference path="../../../../<PorjectName>/bundles/app.javascript.js" />

其中<ProjectName>是您的项目名称,这只适用于测试项目与主应用程序分开的情况。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接