Articles of 摩卡

Mocha作为Nodejs中的库

我们有我们所有的用摩洛哥语言编写的用户界面testing。 如果可以使用摩卡作为库并从expressjs运行这些testing,这将是非常方便的。 我已经在网上search,只有参考我能find的是摩卡作为超过2岁的图书馆 。 此外,答案中给出的链接被打破。 我想运行我的testing的方式是,当我打电话时,它应该运行testing,并在db中更新状态。 我觉得能够使用摩卡作为图书馆将是我的用例更干净的方法。 我可以用命令行来testing他的testing $ $EDITOR test/test.js var assert = require("assert") describe('Array', function(){ describe('#indexOf()', function(){ it('should return -1 when the value is not present', function(){ assert.equal(-1, [1,2,3].indexOf(5)); assert.equal(-1, [1,2,3].indexOf(0)); }) }) }) $ mocha . ✔ 1 test complete (1ms)

摩卡:如何添加代码块(testing为函数/string),而不是mocha.addFile

我以编程方式使用Mocha,并在有关如何添加testing文件的链接中详细介绍了这些内容,但是我已经将以db为单位的testing保存为string。 有没有一种方法,我可以直接将它们添加为string/函数,而不是创build临时缓冲区,并将它们添加为文件? //write my tests stored as strings into filesystem fs.writeFile("tempdir", myTest, function(err) { if(err) { return; } }); var mocha = new Mocha; // Then, you need to use the method "addFile" on the mocha // object for each file. // Here is an example: fs.readdirSync('tempdir').filter(function(file){ // Only keep the .js files return file.substr(-3) […]

如何在运行摩卡testing之前等待一个咕噜的任务完成

简而言之… 我有一些我想要testing的外部configuration的咕噜任务(确保他们做他们应该做的)。 所以我想写一个摩卡testing在before函数中运行任务,并声明一切顺利。 …和一些细节 在我的gruntfile有类似的东西 # Load task configs from `grunt` dir. configs = require('load-grunt-configs') grunt, config: src: ['tasks/*{.js,.json,.coffee,.cson}'] # Load all **grunt tasks** with patter `grunt-*` require('load-grunt-tasks') grunt, pattern: [ 'grunt-*' ] # Pass configs to grunt grunt.initConfig configs 并随后进行一些任务注册… 然而,我现在可以访问我的less任务驻留在我的tasks文件夹(使用grunt-contrib-less ) less.cson 。 到现在为止还挺好。 🙂 我使用chai来断言: describe('Checking static resources for dev', function () […]

如何获得伊斯坦布尔与Sails.js 0.10.x?

我正在尝试使用Sails.js 0.10.x应用程序来获得伊斯坦布尔代码覆盖工具。 我看到http://blog.sergiocruz.me/unit-test-sailsjs-with-mocha-and-instanbul-for-code-coverage/,但是这个使用了0.9.x,并且在0.10.x之后执行了相同的步骤,由于对Grunt设置的更改而工作。 我试图调整它如下: tasks/config/istanbulCoverage.js : module.exports = function (grunt) { grunt.config.set('mocha_istanbul', { coverage: { src: 'test', options: { coverageFolder: 'coverage', mask: '**/*.spec.js', root: 'api/' } } }); grunt.loadNpmTasks('grunt-mocha-istanbul'); }; tasks/register/coverage.js : module.exports = function (grunt) { grunt.registerTask('coverage', [ 'mocha_istanbul:coverage' ]); }; 但是这只会导致/coverage目录被创build,但是没有创build文件。 没有错误消息,所有的testing都通过了,除了没有创build覆盖报告外,一切看起来都很好。 任何人都知道什么是错的? 如果有问题,我在Windows上,但稍后会尝试* nix虚拟机。

testingchild_process.exec导致flakeytesting…为什么?

Flakeytesting 我正在编写一个黄瓜世界模块的unit testing。 该模块似乎正在工作,它作为一个child_process启动快速应用程序,并通过杀死subprocess停止应用程序。 问题是这个模块的摩卡testing是flakey,它每隔一段时间都会通过,而且每隔一段时间都会失败。 我似乎无法弄清楚为什么。 我怎样才能为每一次通过的世界文件写一个testing? 黄瓜世界文件 var zombie = require('zombie'); var cp = require('child_process'); var World = function World(callback) { this.browser = new zombie(); callback(this); }; World.prototype.start = function (callback) { console.log("Starting Express App"); this.app = cp.exec('node ./bin/www'); console.log("Express App Started"); if (callback) callback(); }; World.prototype.stop = function (callback) { this.app.on('close', function () […]

在没有CLI的情况下使用摩卡ia Nodejs-App

我想在节点应用程序whitout CLI中使用Mocha(JS Testing)。 如果我做: var mocha = require('mocha'); var test = new mocha(); test.run(function(err){ if(err){ console.log("Found error"); } }); 我得到摩卡运行。 但是,我怎么可以添加一个testing? 我需要这样的东西: var testcase = { before: function(){}, 'Array': { '#indexOf()': { 'should return -1 when not present': function(){ [1,2,3].indexOf(4).should.equal(-1); } } } }; test.USE(testcase);

强制npmtesting来创build新的\新的input副本

test/ ├── TestOne.js └── TestTwo.js 说, TestOne.js是: 这个testing用例从InputOne.json文件中读取, InputOne.json已有3条logging的对象添加一条logging。 describe('Add Items', function () { it('Should add items', function () { var input = require('./data/InputOne'); var obj = new Department(); var result = obj.AddDept(input); result.should.have.length(4); }); }); 说, TestTwo.js是: 这个testing用例从文件InputOne.json读取并计算元素的数量 describe('Count Items', function () { it('Should count items length', function () { var input = require('./data/InputOne'); […]

testing风帆控制器

我试图testing我的帆控制器。 但是当我在我的UserController.test.js中使用这一行代码,它抛出一个错误不能调用undefined var app = sails.hooks.http.app 在bootstrap.test.js中,我已经声明了这样的风帆 var sails = require('sails') before(function(done){ Sails.lift({},function(err,sails){ done(err, sails); }) }) PS:我已经检查,sails.hooks工作正常,只有在调用http方法它给我这个错误。 我正在关注这个链接进行testing。 帆testing

passportjs,摩卡,超级ECONNREFUSED

我正在尝试使用摩卡,超级terminal和护照进行身份validation,但是我收到拒绝连接的错误消息。 我认为这与我开始我的应用程序的方式… var testUser = { "email": "test@test.com", "password": "test" }; var app = require('../../server'); var request = require('superagent'); var user = request.agent(app); describe('authentication api ', function() { it('should login a user', function(done) { user.post('/login') .send(testUser) .end(function(err, res) { if(err) throw err; done(); }); }); }); 这个用户确实存在于我的mongo数据库中。 在我的服务器文件,这是更高的两个层次: module.exports = app.listen(port, function() { console.log('app listening […]

我怎样才能重复使用摩卡testing,所以我不必重复自己?

我试图在摩卡书写一些testing,我将通过BrowserStack在几个浏览器中自动化。 而不是重复每个浏览器的test.it代码,我想保持我的代码DRY并包装几个test.it块在一个函数中,只是调用test.describe内的test.describe ,像这样(实际的testing细节是不重要的); function runTests(driver) { test.it('form works', function() { var result = testForm(driver, '#formId', 'test@test.com'); return 'Expected Result' === result; }); } test.describe('Tests for IE 9', function() { var driver; test.before(function() { var capabilities = { 'browser' : 'IE', 'browser_version' : '9.0' }; driver = setupDriver(capabilities); }); runTests(driver); test.after(function() { driver.quit(); }); }); test.describe('Tests […]