Articles of mocha

是否有可能在testing中设置amdefine,以便我不必在所有模块文件中定义它?

我有一套使用浏览器端,但testing服务器端与摩卡的对象。 我使用require.js进行AMD加载。 Require.js网站build议在服务器端使用amdefine来获取定义的模块在node.js中的这一点代码: if (typeof define !== 'function') { var define = require('amdefine')(module) } 好。 但是我必须把它放到我想在Node中使用的每个模块中。 在我的情况下,这意味着我不得不从我使用客户端(大部分)的任何代码中删除它。 我想知道是否有任何方法把我的testing中的代码块,所以我不必把它放在我的客户端代码。 在我的文件中只有testing需要的代码似乎很愚蠢 – 把它放在testing代码中更有意义。 但是,当我这样做,我得到一个错误: Error: amdefine with no module ID cannot be called more than once per file. at runFactory (/home/vmplanet/dev/alpha/web/node_modules/amdefine/amdefine.js:159:23) at define (/home/vmplanet/dev/alpha/web/node_modules/amdefine/amdefine.js:275:13) at Object.<anonymous> (/home/vmplanet/dev/alpha/web/assets/src/coffee/delta/dataLayer.coffee:4:3) at Object.<anonymous> (/home/vmplanet/dev/alpha/web/assets/src/coffee/delta/dataLayer.coffee:158:4) at Module._compile (module.js:456:26) at Object.loadFile (/usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:179:19) at […]

zombie.js和Google Maps API

我遇到了zombie.jstesting框架和Google Maps API的问题。 我有一个简单的zombie.js加载主页,并尝试点击login链接。 但是,当我查看返回的主页HTML(从zombie.js浏览器对象的angular度来看),我只在主体部分看到这一点: <body> <script src="https://maps.gstatic.com/intl/en_us/mapfiles/api-3/9/12/main.js" type="text/javascript"></script> </body> 如果我从原始页面中删除Google Maps JavaScript,那么一切正常,我将得到完整的部分。 请求不使用地图API的不同页面也可以正常工作。 我在这里看到一个相关的问题,但解决方法没有完全描述: https : //github.com/assaf/zombie/issues/250 任何人都可以帮助我完全解决这个问题吗? 这里是有问题的zombie.js代码: suite('Zombie Sign In', function() { test('Home page should have sign-in link', function(done) { var browser = new Browser(); browser.debug = true; browser.authenticate().basic(conf.basicAuth.username, conf.basicAuth.password); browser.visit(conf.baseURL, function(e, browser) { console.log(browser.html()); // here is where I get the […]

Node.js + Chai / Mocha /应该:针对相同的响应运行多个testing

我正在使用与以下类似的东西来执行一系列使用Mocha的APItesting。 这很好,但是它需要为每个testing制作一个单独的API调用。 我想要使​​用相同的API调用,并针对该响应运行多个testing。 我一直在阅读你before可以使用的方法,但是Web上的所有例子都没有显示它使用API​​调用? var chai = require('chai'); var request = require('request'); var async = require('async'); var assert = chai.assert, expect = chai.expect, should = chai.should(); describe('/', function () { it('should return 200', function (done) { request.get('http://localhost:8000', function (err, res, body) { res.should.have.status(200); done(); }); }); it('should say "Hello, world!"', function (done) { request.get('http://localhost:8000', function […]

Node.js – 为什么在使用摩卡和僵尸进行testing时会出现泄漏?

我试图让僵尸工作与摩卡,但除非我使用摩卡–ignore – 泄漏命令选项,我的testing总是失败,错误: Error: global leaks detected: k, i, name, chars, char 我的testing看起来就像这个线程中所解释的: Mocha和ZombieJS 我希望我可以在那里发布我的问题,但作为一个新手,我不能评论的线程,只问一个新的问题。 你有什么想法,为什么我得到这些泄漏? 我正在使用摩卡1.0.3和僵尸1.0.0。

摩卡js断言悬挂使用诺言?

"use strict"; let assert = require("assert"); describe("Promise test", function() { it('should pass', function(done) { var a = {}; var b = {}; a.key = 124; b.key = 567; let p = new Promise(function(resolve, reject) { setTimeout(function() { resolve(); }, 100) }); p.then(function success() { console.log("success—->", a, b); assert.deepEqual(a, b, "response doesnot match"); done(); }, function […]

res.should.have.status给我错误

我是新来的摩卡和should.js。 我试图检查响应的状态,但它给了我TypeError: Object #<Assertion> has no method 'status'代码是这样的: describe('Local signup', function() { it('should return error trying to save duplicate username', function(done) { var profile = { email: 'abcd@abcd.com', password: 'Testing1234', confirmPassword: 'Testing1234', firstName: 'Abc', lastName: 'Defg' }; request(url) .post('/user/signup') .send(profile) .end(function(err, res) { if (err) { throw err; } res.should.have.status(400); done(); }); }); 我也注意到,虽然我已经声明var should […]

如何在Travis CI的一个项目中运行Node.js和Rubytesting

我有一个包含多个组件的报表,其中大多数在JavaScript(Node.js)和一个用Ruby(Ruby on Rails)编写的组件。 我想有一个.travis.yml文件触发一个构build,运行每个组件的所有testing。 根据Travis CI Google Group主题 ,目前还没有官方的支持。 我的目录结构如下所示: . ├── buildserver ├── core ├── extensions ├── webapp ├── Vagrantfile ├── package.json ├── .travis.yml └── Makefile 我想能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2)。 我已经有了一个make目标,所以make test在每个子目录下运行适当的testing套件。

Cloud9中的Mochatesting中的“未声明的variables”警告

我是node.js和unit testing框架Mocha的新手,但是我已经在cloud9 IDE中创build了一些testing,以了解它是如何工作的。 代码如下所示: var assert = require("assert"); require("should"); 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)); }); }); }); describe('Array', function(){ describe('#indexOf()', function(){ it('should return the index when the value is present', function(){ assert.equal(1, [1,2,3].indexOf(2)); assert.equal(0, [1,2,3].indexOf(1)); assert.equal(2, [1,2,3].indexOf(3)); }); }); }); 如果我在控制台中键入mocha,testing会起作用,但IDE会在“describe”和“it”的行中显示警告,因为它说variables没有被声明(“未声明的variables”)。 我想知道我应该怎么做这些testing来避免这些警告。 […]

赶上摩卡和柴的超出范围的错误

我正在修改一个node.js库来支持真正的asynchronous操作。 我和摩卡和柴一起做了这个类似的testing。 it('should throw an error', function() { expect(function() { process.nextTick(function() { throw new Error('This is my error'); }); }).to.throw(Error); }); 问题是 – 由于nextTick – 错误被抛出它的范围,除了testing失败,摩卡也输出下面。 Uncaught Error: This is my error 构build这个testing的正确方法是什么?

如何使用gulp和mocha写入文件?

我有一个使用Mocha json记者的抽样任务。 我想写的JSON输出到一个文件。 将欣赏一些投入。 这是我的代码: var gulp = require('gulp'); var mocha = require('gulp-mocha'); var util = require('gulp-util'); gulp.task('myreport', function() { return gulp.src(['tests.js'], { read: false }) .pipe(mocha({ reporter: 'json' })) //how do I write this to a file? .on('error', util.log); });