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

时间:2014-03-17 22:19:13

标签: javascript unit-testing gruntjs jasmine

我有一个应用程序的单元测试,我想测试的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 :(得分:0)

根据您使用的IDE或编辑器,您可以像添加文件引用一样指定依赖项以获得代码完成。

E.g。例如,在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" />

&lt; ProjectName&gt; 是您的项目名称,这只是因为测试项目是与主应用程序不同的项目