我想为我正在构建的项目设置测试。在我能找到的示例中,他们都说包含要测试的相关代码是通过 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({});
});
});
如果您不使用模块,您可以为您的测试创建一个简单的 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>
有了这个,您不需要在测试文件中添加任何内容。
如果您想了解更多信息:文章
希望对你有帮助。
遇到了类似的问题,并以允许 Jest 和 Mocha 等常规单元测试框架访问的方式解决了该问题,而无需修改原始 JavaScript 文件。已回答这里。