Articles of 摩卡

自定义yeoman生成器的npmtesting失败

我已经build立了一个自定义的yeoman生成器。 你可以在https://github.com/abhishekoza/generator-ratchetfind代码。 当我尝试“npmtesting”,我得到以下错误 1 passing (454ms) 1 failing 1) ratchet generator creates expected files: Uncaught Error: You don't seem to have a generator with the name mocha:app installed. You can see available generators with npm search yeoman-generator and then install them with npm install [name]. To see the 1 registered generators run yo with the […]

在Node.js中使用纳米销毁文档

我正在构buildNode.js / Express 4中的第一个REST API。我正在通过Nano使用Couchdb。 我已经得到了Get,Put和Post的东西,但是Delete导致了一些问题。 我得到的文件删除,但我得到一个404响应。 我也试图在摩卡书写适当的testing,这就是我如何得到404,以及与邮递员手动testing。 这是我到目前为止: 在我的路线中: router.delete('/:bear_id', function(req, res, done) { console.log("deleting…" + req.params.bear_id); bears.get(req.params.bear_id, function(err, body, header) { if (!err) { bears.destroy(req.params.bear_id, body._rev, function(err, body, header) { if (!err) { res.send(200, { message: "deleted " + req.params.bear_id}); } }); } done(); }); }); 在我的testing中: it('DELETE api/bears should delete the test_bear', […]

错误:超过2000毫秒超时。 unit testing承诺

我的unit testing向HTTP API请求HTTP请求并使用kriskowal q库。 当我assert调用, thencallback和断言失败,我看到Error: timeout of 2000ms exceeded而不是AssertionError 。 我写了一个例子来说明这种情况: var assert = require('assert') , Q = require('q'); it('promise', function(cb){ var deferred = Q.defer(); deferred.promise.then(function(){ assert(false); cb(); }); deferred.resolve(); }); 我无法理解这种行为。 使用setTimeout/setImmediatebuild模asynchronous行为显示正常的AssertionError 。

在Mocha + Supertest的404testing中出现“Body Parse”错误

我正在尝试编写testing以确保我的Express API正确地为各种情况返回正确的HTTP状态代码。 我在testing中使用Mocha和Supertest来请求API。 现在我得到了非常意想不到的结果,下面会详细介绍。 使用:Express,body-parser,Sequelize,Mocha,Supertest GET / users /:id models.User.find(req.params.id).complete(function(err, foundUser) { if (err) { logger.error(err, 'Error'); return err; } console.log('user: ' + foundUser); if (foundUser != null) { res.json({ user: foundUser.getJsonRepresentation() }); } else { res.status(404); res.json({ error: 'Not found' }); } }); testing这种方法 it('responds with the right user', function(done){ request(app) .get(apiPath + '/users/' […]

用Mocha – Nodejs进行Ajaxtesting

我尝试使用摩卡来写我的应用程序的testing。 当页面重新加载时,我可以运行不同的场景。 考虑下面的情况 1)用户在文本字段“用户名”中input值 2)点击“保存”button 3)这将发送一个Ajax调用来保存用户名和响应可能会在1到2秒内回来 4)接收到响应后显示一条消息 我怎样才能实现以上情况的testing? 注意:我尝试了下面的代码,但是浏览器并没有等待 describe("Ajax test", function(){ before(function(){ return this.browser.field('save').click() }) it("Tests save username", function(){ this.browser.wait(6000, function() { //code to check if success message is shown in body }) }) }) 谢谢,巴兰

在expressionapi中返回时,mongoose中_id的types是错误的

我build立了一个简单的testing(摩卡,应该),我testing我保存的报告和我所得到的一样。 我宁愿使用deep.equal,但由于_id不等于即时通讯卡。 var report = new Report(); describe('GET:id /api/reports', function () { beforeEach(function (done) { report.save(function (err, result) { if (err) return (done(err)); result._id.should.eql(report._id); done(); }); }); afterEach(function (done) { Report.remove().exec().then(function () { done(); }); }); before(function (done) { Report.remove().exec().then(function () { done(); }); }); it('should respond with the same report saved', function (done) { […]

NodeJs和Mochatesting响应

是否有可能使用摩卡来testingNodeJs的响应? GET请求是使用$ http从AngularJs到NodeJs。 在请求成功的时候调用这个函数: var successCallback = function (data) { var SUCCESS_STATUS_CODE = 200; response.set('Content-Type', 'application/json'); response.send({ statusCode: SUCCESS_STATUS_CODE, data: data }); }; 我试图用Sinon来窥探这个function,而且Mocha也检查了这个请求,但是我不能让它们工作。 编写一个testing来检查“response.send”输出的最好方法是什么?

每次调用时,Sinon.stub()都会返回不同的值

这里是我正在写testing的代码: 'use strict'; var internals = {}; var _ = require('lodash'); module.exports = { initialize: function (query) { internals.query = query; }, createField: function (fieldId, accountId, payload) { function callQuery (parList) { var query = 'INSERT into fields VALUES (:uuid, :accountId, :shortcutName, :displayName, :fieldType, :widgetType, :columnOrder, :options, :required, NULL)'; return internals.query(query, parList, function () { […]

航行testing控制器没有完全执行

我正在使用sailsjs v0.11 正如testing文档中提到的,我已经configuration了我的应用程序。 我的UserController.test.js var request = require('supertest'); console.log('log 1'); describe('UserController', function() { console.log('log 2'); describe('index', function() { console.log('log 3'); it('should return success', function(done) { console.log('log 4'); request(sails.hooks.http.app) .get('/user') .expect(200, done); }); }); }); 我的User.test.js describe.only('UsersModel', function() { describe('#find()', function() { it('should check find function', function (done) { User.find() .then(function(results) { done(); }) .catch(done); }); […]

摩卡testing超时使用承诺和跳过代码,为什么?

我一直试图连续运行这个testing2天,我无法弄清楚它有什么问题: /*eslint-env mocha */ // var expect = require('chai').expect; var chai = require('chai'); var chaiAsPromised = require("chai-as-promised"); var expect = chai.expect; var Promise = require('bluebird'); var Archive = require('../lib/archive'); var path = require('path'); var fs = Promise.promisifyAll(require('fs-extra')); var globAsync = Promise.promisify(require('glob')); var tar = require('tar-fs'); var zlib = Promise.promisifyAll(require('zlib')); chai.use(chaiAsPromised); describe('Archive', function() { var pkg; […]