JavaScript 从另一个文件创建自定义对象以进行测试

JavaScript make custom object from another file for testing

我正在为以下 html 文件编写 Qunit 测试:

var PinPointService = {
     doAjax: function(doAjax_params) {
          //do some stuff
     }
     //a bunch more variables and functions
}

我在单独文件中编写的测试:

QUnit.test("test", function(assert) {
    var array = [];
    PinPointService.doAjax(array);
    //assert some stuff
});

我得到的错误:

PinPointService is not defined

我的主要 js 文件:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>Pinpoint Test</title>
  <link rel="stylesheet" href="https://code.jquery.com/qunit/qunit-2.0.0.css">

  <script src="http://code.jquery.com/jquery-latest.js"></script>  
  <script src="https://code.jquery.com/qunit/qunit-2.0.0.js"></script>
  <script type="text/javascript" src="C:\path\to\jshamcrest.js"></script>
  <script type="text/javascript" src="C:\path\to\core.js"></script>
  <script type="text/javascript" src="C:\path\to\integration.js"></script>  
  <script type="text/javascript" src="C:\path\to\jsmockito-1.0.4.js"></script>
  <script type="text/javascript" src=""></script>
  <script src="C:\path\to\pinpoint.html"></script>
  <script src="C:\path\to\pinpointTest.js"></script>
</head>
<body>
  <div id="qunit"></div>
  <div id="qunit-fixture"></div>

</body>
</html>

除了在我的主 js 文件中包含 pinpoint.html 之外,我还需要做些什么吗?我是 JavaScript 的新手,所以我认为我可能会遗漏一些关于该语言如何工作的基础知识,与我非常熟悉的 Java 相比。

确保将文件导入

QUnit.test("test", function(assert) {
    var array = [];
    PinPointService.doAjax(array);
    //assert some stuff
});

在您导入 PinPointService 后找到。

所以在你的 html 文件中应该是这样的

...
 <script src="C:\path\to\pinpointTest.js"></script>
<script src="file_containing_the_code_above"></script>
...

html 页面是从上到下读取和包含的,因此如果您还没有包含 pinpointTest 文件,则不能使用其中的任何内容。