Tag: tdd

如何testing节点数据分块function

我正在开发一个使用节点的项目,我们正在努力实现我们function的100%覆盖。 这是我们没有testing过的唯一function,而且是另一个function。 var userInput = ""; req.on("data", function(data){ userInput += data; }); 你如何去testing这个function? 我们尝试从另一个文件导出function,但没有运气。 我应该提到,我们正在使用磁带作为testing模块。

运行只有一个摩卡testing文件的变化与吞噬

我有一个标准的吞咽testing观察者和亚军我的Node.js /摩卡安装程序; gulp.task('mocha', function() { process.env.NODE_ENV = 'test'; return gulp.src(['./test/**/*.js'], {read: false}) .pipe(mocha({ recursive: true, reporter: 'list', ui: 'bdd' })).on('error', gutil.log); }); gulp.task('tests', function() { gulp.watch(sources.concat(tests), ['mocha']); }); 我想知道如何调整我的观察任务(和其他),只发送给摩卡的已经改变了的testing – 所以我不必等待20秒就可以运行一百个testing。 我已经尝试了这个fgulp-newer和gulp-cached,但没有运气。 我在这里寻找一个答案或一个吞咽插件的伪algorithm,我可以为此写:)

摩卡与nodejs断言悬挂/超时断言(错误),而不是错误

我有这种摩卡testing: describe 'sabah', → beforeEach → @sabahStrategy = _.filter(@strats, { name: 'sabah2' })[0] .strat it 'article list should be populated', (done) → @timeout 10000 strat = new @sabahStrategy() articles = strat.getArticleStream('barlas') articles.take(2).toArray( (result)→ _.each(result, (articleList) → // I make the assertions here // assert(false) assert(articleList.length > 1) ) done() ) 问题是,每当我assert(false) ,testing挂起,直到超时,而不是给一个断言错误,为什么? 编辑: 例如,如果我有这两个testing it […]

如何使用supertest和代理在摩卡testing中进行authentication请求?

我在login后无法运行已validation的testing(服务器返回401 Unauthenticated )。 var should = require('should'), _ = require('lodash'), app = require('../../../server'), mongoose = require('mongoose'), User = mongoose.model('User'), request = require('supertest'); var user , user1; describe('GET /api/jobs', function () { before(function (done) { user = new User({ provider: 'local', name: 'Fake User', email: 'test@test.com', password: 'password' }); // Clear users before testing User.remove().exec(); request(app) […]

在Reduxtesting中,Nock不拦截API调用

我试图在一个REDX应用程序中testing一个API调用。 该代码非常符合redux文档的Async Action Creators部分中概述的模式: http://redux.js.org/docs/recipes/WritingTests.html 它的要点是,你使用减less模拟商店logging和断言任何触发的行动。 这是整个testing,用nock来模拟api调用: import React from 'React' import ReactDOM from 'react-dom' import expect from 'expect'; import expectJSX from 'expect-jsx'; import TestUtils from 'react-addons-test-utils' import configureMockStore from 'redux-mock-store' import thunk from 'redux-thunk' import nock from 'nock' expect.extend(expectJSX); import * as types from '../../constants/Actions' describe('Async Search Actions', () => { const thunkMiddleware = […]

如何检测是否在node.js中运行摩卡testing?

我想确保在代码以testing模式运行的情况下,它不会(意外)访问错误的数据库。 检测代码当前是否在testing模式下运行的最佳方法是什么?

如何testing一个函数是否调用特定的方法/函数?

摩卡里有没有一种方法来testing一个函数是否调用特定的方法或外部函数? 我正在使用摩卡与柴,但我打开任何其他断言库。 好的,用sinon来testing一个方法是否被调用是非常容易的。 我不确定testing,看是否正在调用一个外部函数。 所以我更新了一些例子来代表一些更“真实的世界”。 我正在研究节点应用程序,所以foo.js和bar.js都是模块。 例: foo.js var bar = require('bar'); var xyz = function () {}; var Foo = module.exports = function () { this.bar(); bar(); xyz(); }; Foo.prototype.bar = function () {}; bar.js var bar = module.exports = function () {}; fooSpec.js var chai = require('chai'); var sinon = require('sinon'); var sinonChai […]

摩卡,should.js和断言exception

我有一个文件app.coffee : class TaskList class Task constructor: (@name) -> @status = 'incomplete' complete: -> if @parent? and @parent.status isnt 'completed' throw "Dependent task '#{@parent.name}' is not completed." @status = 'complete' true dependsOn: (@parent) -> @parent.child = @ @status = 'dependent' # Prepare scope stuff root = exports ? window root.TaskList = TaskList root.Task = Task […]

自动化Jasmine-Node和express.js

我使用express.js创build了一个简单的Webapp,并且想用jasmine-node来testing它。 到目前为止工作正常,但我的问题是,我必须手动启动服务器,每次我可以运行我的testing。 你能帮我写一个spec-helper来运行服务器(与另一个端口,然后是我的开发者)只是为了testing,然后杀死它?

npm +摩卡 – 手表(不准确观看文件)

我使用摩卡npm,做一个“npmtesting”启动摩卡。 它在mocha.opts中启用了–watch,但由于某些原因,它不能准确地观察。 当我改变我的testing文件,然后保存它,不pipe是我进行了一个错误的testing还是一个好的testing,我都得到了同样的结果:0传递(绿色),而当我第一次运行摩卡时, 2传球。 有什么我失踪? 谢谢!