Tag: 摩卡

使用Mocha循环callback返回的数组

我试图达到这样的事情: describe("TEST",function() { Offer.find({},{_id:1, title:1}).exec(function(error, offers) { for (var i = 0; i < offers.length; i++) { it("Ask transaction : " + offers[i].title, function(done) { // do something with offers[i]; } } … 但摩卡甚至没有在文件中检测到一个testing。 为什么?

不寻常的行为在testing:node.js / Mocha

我最近跳入nodeJS,并开始使用Express&Wagnor构build中间件应用程序 下面是我的package.JSON { "devDependencies": { "gulp": "3.8.11", "gulp-mocha": "2.0.1", "mocha": "2.2.4", "superagent": "1.2.0", "wagner-core": "0.1.0" }, "dependencies": { "underscore": "1.5.2", "mongodb": "2.2.10", "express": "", "http-status": "0.1.8", "mongoose":"" }, "scripts": { "test": "mocha test.js" } } 我被困在一个非常特殊的情况下,search类似的事件报告,但没有得到任何相关的。 我确信我犯了一个愚蠢的错误,需要帮助来识别它。 这里是情况,我有一个基本的中间件设置6个端点,我正在testing使用摩卡。 我有一个test.js文件与6testing和问题是,当我运行它通过一次失败的另一次,然后再次通过没有任何干预env或代码或testing。 这让我非常担心,天气我的应用程序将在生产中performance类似,或者是一个testing相关的问题或已知的摩卡问题(找不到任何)。 以下是我的testing文件 var URL_ROOT = 'http://localhost:3131'; var express = require('express'); var wagner = require('wagner-core'); var assert […]

如何从一个文件夹运行npmtesting?

目前,我正在testing一个React节点应用程序,并将所有testing都放在root / tests文件夹中,并将组件放在与其function相关的单独文件夹中。 我有10多个文件夹和100多个testing,并希望在观看一个文件夹的同时为新组件编写testing。 目前,我正在使用 npm运行testing:看 然而,哪一个工作出色,不仅如此,还有很多开销重新运行了与我的新组件无关的100个其他testing,也很难清除所有的反馈来查看我当前testing的结果。 有没有一个很好的命令只看我的新testing,甚至testing文件的目录?

用Sinon / Mocha正确的剔除请求/响应

我对后端的unit testing相对比较陌生,需要一些关于如何对以下内容进行unit testing的指导。 我正在使用Mocha / Should / Sinon。 exports.get = function(req, res) { if (req.query.example) { return res.status(200).json({ success: true }); } else { return res.status(400).json({error: true}); } }

用Mocha和Chai在JavaScript中testing一个随机数函数

假设我有一个函数返回一个乘以二的数字。 function double(number){ return number * 2; } 用摩卡和柴testing它很容易。 var expect = require("chai").expect; describe("#double", function(){ it("should double a number", function(){ expect(double(2)).to.equal(4); expect(double(4.5)).to.equal(9); expect(double(-3)).to.equal(-6); }); }); 但是现在假设我有一个函数返回两个指定整数之间的随机整数,称它们为min和max 。 function randBetween(min, max){ return Math.floor(Math.random() * (max – min + 1) + min); } 我将无法预测返回的值将等于什么。 我可以编写一个testing,确保返回的值大于或等于min ,小于或等于max ,但实际上并不testing返回的值是否是随机的 。 有一个统计上有效的方法来testing我的randBetween函数是否正常工作吗? PS我知道这个函数不处理无效的参数,例如,如果max小于min 。 请暂时搁置一下。

用dummy db在自己的环境中testingexpress.js应用程序

我有我的networking应用程序的以下结构 db.js: mongoose = require('mongoose'); db = mongoose.createConnection("…"); playerSchema = new mongoose.Schema({ // my schema stuff }); exports.Player = db.model("player", playerSchema); 我有我所有的路线在一个自己的文件(路线/ index.js): db = require('../db'); exports.createPlayer = function(req, res) { player = new db.Player(); player.name = req.body.player_name; player.save(function(err) { if (err) { log(err); } res.redirect("/"); }); }; app.js routes = require('./routes'); app.post("/start", routes.createPlayer); 我使用摩卡testing应用程序,应该和超类似下面的例子 […]

如何在不修改源代码的情况下获得Mochatesting的代码覆盖率?

我有很多使用Mocha编写的Node.js应用程序的unit testing。 现在我想为这些testing提供一些testing覆盖率数据。 我已经看到,摩卡支持覆盖率报告,但需要使用一个库,如JSCoverage预处理。 处理JSCoverage基本上并不困难,但是为了一切正常,这个场景需要你修改你的源代码,以便根据环境variables导出原始代码。 这基本上是我不喜欢的一步。 我想要的是: 像往常一样写我的代码。 像往常一样写我的testing使用摩卡。 为我的testing获取代码覆盖率,而无需修改testing或代码。 这可能吗? 如果是这样,怎么样? 任何提示让我这样做的图书馆将是伟大的:-)

nodejs / mocha / nock – 模拟整个html响应

我如何为我的testing模拟整个HTML正文响应? 我正在使用nodejs / mocha / nock。 与诺克我可以嘲笑JSON响应就好,例如: nock('http://myapp.iriscouch.com') .get('/users/1') .reply(200, {_id: "123ABC", _rev: "946B7D1C", username: 'pgte'}); 我使用curl -o来获取我想要的模拟html,所以我已经在一个文件中 – 但我不知道如何将HTML文件传递给nock(或其他)。 谢谢。

从phantomjs运行摩卡

我只想用Mocha和PhantomJS做一些BDD。 定义一些functionpath并testing它们。 总之,我很想运行命令phantomjs test.js而test.js包含这样的东西: var mocha = require("mocha"); // This one fails with "ReferenceError: Can't find variable: process"….. "/node_modules/mocha/index.js:2" var page = require('webpage').create(); describe('Empty', function(){ // Obviously this one fails too with "ReferenceError: Can't find variable: describe" describe('tests are', function(){ it('very nice', function(done){ page.open("http://www.phantomjs.org/", function (status) { console.log('Loading a web page'); console.log("Page is loaded"); phantom.exit(); […]

使用摩卡的Node-Redis Asynchrounoustesting

我有一个用Node.JS编写的简单asynchronous代码,它向Redis SET添加一个string。 这里是代码,它保存在一个名为redis_ops.js的文件中 var redis = require('redis'); exports.addUser= function(){ var client = redis.createClient(); client.on("error",function(err){ console.log('Error'+ err); }); client.select(1); client.sadd("users","naveen",function(err,reply){ if(err) throw err; return reply; }); console.log("at the end of the adduser function") } 由于client.sadd是asynchronous的,因此包含client.sadd的函数在client.sdd完成之前返回。 这是使用摩卡书写的testing var assert = require("assert"); var core = require('./redis_ops.js'); describe('COREAPI', function(){ describe('addUser', function(){ it('should return 1 if the user is added […]