javascript - 如何像 Mocha 在 Node.js 上使用 Jasmine 一样

标签 javascript node.js jasmine

你好,我想知道如何像摩卡和柴一样使用 Jasmine 。

基本上,在 Mocha 中,您只需将其安装在 Node 上,然后将其包含在测试文件中,如下所示:

const assert = require('chai').assert;
const expect = require('chai').expect;
const should = require('chai').should();
const app = require('../app');

然后,您会自动包含一些测试并运行 npm run test,您可以通过终端查看失败和通过的测试。

当我尝试使用 npm install jasmine --save-dev 通过 Node 安装 jasmine 时,然后输入 ff:

const expect = require('jasmine');
const app = require('../app');

然后尝试了一些测试:

describe('Multiply Numbers', function(){

  it('should return correct output', function(){
    let result = app.multiplyNumbers(2,2);
    expect(result, 4);
  });

});

我收到了 ff 错误:

> jasmine-test@1.0.0 test c:\xampp\htdocs\unitTesting\jasmine
> jasmine

Started


No specs found
Finished in 0.003 seconds

知道如何在 Node js 上运行一些测试,比如 mocha 和 chai 吗? 另外,我在哪里可以找到断言选项(如 chai 中的expect、should..etc)文档?

PS。这是我的 package.json 文件:

{
  "name": "jasmine-test",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "directories": {
    "test": "test"
  },
  "scripts":{
    "test": "jasmine"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "jasmine": "^2.8.0"
  }
}

最佳答案

有一种不同的方法来使用 Jasmine 进行 Node 设置来实现测试环境。

首先安装Jasmine-node模块

npm install jasmine-node --save-dev

创建测试目录和规范文件

mkdir tests
touch tests/myFirstTest.js

现在您可以按照通常的 Jasmine 语法在此文件中添加 jasmine 规范。 要遵循的文档位于:https://jasmine.github.io/2.0/introduction.html

在规范文件中添加以下内容,以将您的应用与规范集成。

var myApp = require("../myApp.js")

有关此集成的一个问题是,如果服务器未关闭,规范可能会反复运行。为了防止这种情况,只需转到应用程序的主 js 文件并导出关闭服务器函数即可。基本上,您需要在 app.js 中添加以下内容:

exports.closeServer = function(){
    server.close();
};

请务必在 afterEach jasmine 函数中关闭服务器(请参阅上面的文档),如下所示:

myApp.closeServer();

为了使用 npm test 从终端运行测试,只需将其添加到您的 packages.json 文件中:

"scripts": {
"test": "jasmine-node tests"
}

您已全部设置完毕!只需在终端中运行即可,

npm test

关于javascript - 如何像 Mocha 在 Node.js 上使用 Jasmine 一样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47626928/

相关文章:

javascript - 验证函数不应接受字母字符

javascript - 如果 jquery 验证激活,如何在单选按钮中放置红色边框

java - 创建随 secret 码会生成长度为 0 : Blame JavaScript or Java Servlet? 的密码

node.js - Sequelize 如何运作?

node.js - Mongodb 中的 $size 加 1

angularjs - 将 Karma-runner 与 AngularJS、Jasmine、CoffeeScript 一起使用

testing - Jasmine /karma 测试 : browser is not defined

javascript - 尝试用 JavaScript 创建 <li> 元素,但它消失了

javascript - 记录js文件名和函数名

jasmine - 从正在测试的代码中抑制控制台日志