使用 node.js、Mocha 和 mocha-jsdom 测试 Typescript 生成的类?

leeand00

我想从 bash 运行单元测试以使用 mocha 和 mocha-jsdom 测试我的 Typescript 生成的 Javascript 类。我使用 mocha-jsdom 是因为我想在我的测试中模拟 dom 但从 bash 运行单元测试。

我看过一些例子,他们在浏览器中使用 mocha 的前端测试框架,但我没有看到它们从 bash 运行的任何地方。

看来我无法在我的 mocha 单元测试中包含从 Typescript 生成的 Javascript 类。

var jsdom = require('../../index'); 
require('../../src/js/acct/AccountManager.js');

describe('GenerateHTML', function() {
  describe('#generateHTML()', function() {

    jsdom()

    it('should generate a table', function() {
        var vahm = new VerticalAccountHTMLManager(document, "testId");

        expect($("#testId")[0]).eql("table");   
    }); 
  });
});

有什么方法可以将创建类的函数导入 mocha 单元测试,同时仍然从 bash 运行它?

基里莫

所以让我们从执行测试开始。要执行测试,您有多种选择:

  • 使用karma. Karma 是一个 JavaScript 测试运行器。实际上,您在karma.config.js文件中指定要执行的所有测试,它将执行所有测试。您还有一个watch功能,允许您在每次更改代码时执行测试
  • 使用 node.js。package.json文件的脚本属性中,指定命令test并将命令关联到该脚本,以便针对所有测试执行 mocha。然后您只需键入即可运行测试npm test
  • 如果你想使用 bash,我的建议是使用它来触发 npm test 命令或 karma 命令。这是您可以用来通过 bash 启动测试的最简单方法。您还可以在 Win 上设置一个 .bat 文件,它始终通过 npm/karma 命令运行您的测试
  • 使用任务运行的GulpGrunt等等......你可以指定你触发你的测试任务,然后运行该任务提供例如命令gulp mytask

我的建议是现在直接使用 node.js。它使事情变得更容易。

关于 TypeScript,你可以直接使用 mocha 和 TypeScrit,不需要 JavaScript。我建议你将 mocha 与 chai、chai-as-promised 和 sinon 结合起来。Chai 是一个断言库。Chai-as-promised 允许你测试 promises 和 sinon 来测试函数和方法。

这是package.json我上面所说的测试命令的示例

"scripts": {
    "test": "find ./src -name '*spec.ts' | xargs mocha -r ts-node/register"
}

使用这一行,您将执行所有以*spec.ts. ts-node 是一个非常有用的节点插件,它允许您直接通过命令运行 tsts-node myfile.ts

关于要包含在package.json此处的有用列表的依赖项

"devDependencies": {
        "@types/chai": "^3.5.0",
        "@types/chai-as-promised": "^0.0.30",
        "@types/mocha": "^2.2.40",
        "@types/node": "^7.0.12",
        "@types/sinon": "^2.1.2",
        "chai": "^3.5.0",
        "chai-as-promised": "^6.0.0",
        "husky": "^0.13.3",
        "mocha": "^3.2.0",
        "sinon": "^2.1.0",
        "ts-node": "^3.0.2",
        "typings": "^2.1.1"
}

关于如何将 mocha 集成到你的测试中,这里是一个可以用作模式的规范文件的声明:

// imports of testing libraries 
import * as mocha from 'mocha';
import * as chai from 'chai';
import * as chaiAsPromised from 'chai-as-promised';
import sinon = require('sinon');
// import of the source files to be tested
import Main from './Main'; // an example

// testing inits
chai.use(chaiAsPromised);
const expect = chai.expect;
const assert = chai.assert;
const should = chai.should();

您可以尝试查看此 repo。有一个非常简单的项目,其中包含我上面提到的 TypeScript 和所有测试库。它仍在进行中,我还没有时间完成它,所以主 README.md 也没有更新。但是,如果您克隆项目或下载源代码,您可以对我上面所说的所有内容有一个真正的全景,并说明您可以在测试中使用的所有方法:

https://github.com/quirimmo/testing-typescript-mocha-chai-sinon

希望这有帮助!如有任何疑问,请告诉我!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Node.js-使用Mocha测试AWS

来自分类Dev

使用Chai \ Mocha设置进行单元测试时,如何使JSDOM与Typescript一起使用?

来自分类Dev

使用Node.js,Gulp.js和Mocha单元测试angularjs控制器

来自分类Dev

使用Node.js,Gulp.js和Mocha单元测试angularjs控制器

来自分类Dev

使用Mocha和Node.js进行私有功能的单元测试

来自分类Dev

使用 SocketIO 和 Express 进行 Node mocha API 测试

来自分类Dev

使用Mocha进行Ajax测试-Node.js

来自分类Dev

使用node-inspector调试远程mocha.js测试?

来自分类Dev

使用Mocha Chai测试node.js中引发的错误

来自分类Dev

如何使用Mocha单元测试node.js功能?

来自分类Dev

使用Mocha在node.js函数上测试错误

来自分类Dev

Mocha/Sinon 单元测试 JS 类和实例问题

来自分类Dev

使用Mocha,Chai,chaiAsPromised和Sinon测试JS Promise

来自分类Dev

使用TypeScript在Mocha中访问测试标题

来自分类Dev

测试:mocha + typescript + webpack

来自分类Dev

使用Babel和Webpack的Mocha测试失败

来自分类Dev

使用SailsJS和Superagent运行Mocha测试

来自分类Dev

使用 Mocha 和 Chai 测试 React

来自分类Dev

使用 Typescript 在 Mocha 测试中检索当前测试的名称

来自分类Dev

从命令行使用Chai和TypeScript运行Mocha测试

来自分类Dev

使用Mocha测试Node时测试结果未显示

来自分类Dev

使用Mocha / Chai测试JS异常

来自分类Dev

使用node-jscoverage,mocha和express的功能测试覆盖率报告

来自分类Dev

使用babel-node和babel-istanbul运行Mocha测试时加载CSS时出错

来自分类Dev

如何在 Node 中使用 Mocha 和 Chai 测试承诺拒绝?

来自分类Dev

使用mocha.js测试node.js中的外部api调用

来自分类Dev

使用mocha.js测试node.js中的外部api调用

来自分类Dev

使用setInterval测试功能时,Mocha和Chai测试失败

来自分类Dev

无法在VSCode中使用TypeScript运行Mocha测试

Related 相关文章

  1. 1

    Node.js-使用Mocha测试AWS

  2. 2

    使用Chai \ Mocha设置进行单元测试时,如何使JSDOM与Typescript一起使用?

  3. 3

    使用Node.js,Gulp.js和Mocha单元测试angularjs控制器

  4. 4

    使用Node.js,Gulp.js和Mocha单元测试angularjs控制器

  5. 5

    使用Mocha和Node.js进行私有功能的单元测试

  6. 6

    使用 SocketIO 和 Express 进行 Node mocha API 测试

  7. 7

    使用Mocha进行Ajax测试-Node.js

  8. 8

    使用node-inspector调试远程mocha.js测试?

  9. 9

    使用Mocha Chai测试node.js中引发的错误

  10. 10

    如何使用Mocha单元测试node.js功能?

  11. 11

    使用Mocha在node.js函数上测试错误

  12. 12

    Mocha/Sinon 单元测试 JS 类和实例问题

  13. 13

    使用Mocha,Chai,chaiAsPromised和Sinon测试JS Promise

  14. 14

    使用TypeScript在Mocha中访问测试标题

  15. 15

    测试:mocha + typescript + webpack

  16. 16

    使用Babel和Webpack的Mocha测试失败

  17. 17

    使用SailsJS和Superagent运行Mocha测试

  18. 18

    使用 Mocha 和 Chai 测试 React

  19. 19

    使用 Typescript 在 Mocha 测试中检索当前测试的名称

  20. 20

    从命令行使用Chai和TypeScript运行Mocha测试

  21. 21

    使用Mocha测试Node时测试结果未显示

  22. 22

    使用Mocha / Chai测试JS异常

  23. 23

    使用node-jscoverage,mocha和express的功能测试覆盖率报告

  24. 24

    使用babel-node和babel-istanbul运行Mocha测试时加载CSS时出错

  25. 25

    如何在 Node 中使用 Mocha 和 Chai 测试承诺拒绝?

  26. 26

    使用mocha.js测试node.js中的外部api调用

  27. 27

    使用mocha.js测试node.js中的外部api调用

  28. 28

    使用setInterval测试功能时,Mocha和Chai测试失败

  29. 29

    无法在VSCode中使用TypeScript运行Mocha测试

热门标签

归档