如何在 Mocha/Chai 中测试 JS 原型(非模块)?

问题描述 投票:0回答:2

我想为我正在构建的项目设置测试。在我能找到的示例中,他们都说包含要测试的相关代码是通过 require 语句完成的:

require('foo');
。然而,我的项目不是构建在模块中,而是构建在 ES6 类中,然后将其转换为 ES5 原型。

我想知道如何包含该文件?

例如 ES6 类:

class Foo {
  constructor() {
    // do things
  }
}

大致翻译为:

// ES5 compatible code is here (_classCallCheck etc).
var Foo = (function () {    
  function Foo() {
    _classCallCheck(this, Foo);

   // do things
  }
}

我想知道如何将它包含在我的测试文件中:

var expect   = require('chai').expect;
// how to require or whatever else here?

describe('Foo', function() {
  it('creates an Foo object', function() {
    var foo = new Foo({});
  });
});
javascript unit-testing testing mocha.js chai
2个回答
2
投票

如果您不使用模块,您可以为您的测试创建一个简单的 html 页面,如下所示:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>your tests</title>
  <link rel="stylesheet" media="all" href="vendor/mocha.css">
</head>
<body>
  <div id="mocha"><p><a href=".">Index</a></p></div>
  <div id="messages"></div>
  <div id="fixtures"></div>
  <script src="vendor/mocha.js"></script>
  <script src="vendor/chai.js"></script>
  <script src="your_files.js"></script>
  <script src="your_files_test.js"></script>
  <script>mocha.run();</script>
</body>
</html>

有了这个,您不需要在测试文件中添加任何内容。

如果您想了解更多信息:文章

希望对你有帮助。


0
投票

遇到了类似的问题,并以允许 Jest 和 Mocha 等常规单元测试框架访问的方式解决了该问题,而无需修改原始 JavaScript 文件。已回答这里

© www.soinside.com 2019 - 2024. All rights reserved.