Articles of 摩卡

当使用摩卡进行testing时,Node.js执行CronJob

所以,我有一些js代码,这是一个slackbot,应该简单地监听和parsing提供的date,然后启动一个CronJob按照提供的cron或date格式运行某个函数。 像这样的东西。 var CronJob = require ('cron').CronJob; … robot.respond(date, function (msg)) { if(!isValidDate(date)) msg.reply("not a valid date); var interval = isCronDate(date) ? date : new Date(date); msg.reply("Job about to be scheduled.") var schedule = new CronJob(interval, processDataOnDate(), function() { msg.reply("hello") }, true); } 我有一个testing这个代码的咖啡文件,我期望得到一些反馈,但是我不希望根据我在testing代码中提供的date来执行cron作业。 但是,这是。 这是正常的吗? 由于这是一个unit testing,摩卡强迫代码完成执行,还是我做错了什么? 我正在运行这个来执行我的unit testing。 mocha –compilers coffee:coffee-script/register 为了得到更多的信息,我把这个作为一个slackbot运行,所有这些都是以“say”和“reply”的forms完成的。 我的一个testing看起来像这样。 […]

在浏览器中使用Webpack和mocha-loader从React应用程序运行Mocha规范

我有一个应用程序,我想在浏览器中运行它的mocha规格(unit testing)。 我发现这个SOpost,并试图将相同的想法应用到我的项目。 我想出了下面的webpackconfiguration文件: webpack.config.test.js const nodeExternals = require('webpack-node-externals'); const path = require('path'); const host = 'localhost'; const port = '8084'; module.exports = { target: 'web', externals: [nodeExternals()], entry: './specs/index.js', output: { filename: 'debug.bundle.js', path: path.join(__dirname, 'tests'), publicPath: `http://${host}:${port}/tests`, }, devServer: { host, port, }, module: { rules: [ { test: /\.js$/, loaders: ['react-hot-loader', 'babel-loader'], […]

如何使用摩卡在reactjs中testing这个asynchronous方法调用

// Balance.jsx … updateToken () { const parseResponse = (response) => { if (response.ok) { return response.json() } else { throw new Error('Could not retrieve access token.') } } const update = (data) => { if (data.token) { this.data.accessTokenData = data } else { throw new Error('Invalid response from token api') } } if (this.props.balanceEndpoint […]

“node –debug”和“node –debug-brk”是无效的

我已经更新了节点(v8.1.2)。 当我想使用NTVS在visualjs中debugging我之前的testing项目(在visual studio 2017中)时,我得到了以下错误: StandardError:(node:5292)[DEP0062] DeprecationWarning: node –debug和node –debug-brk无效。 请使用node –inspect或node –inspect-brk来代替。 问题很清楚。 该工具尝试运行node –debug – debugging以启动项目。 问题是,如何在Visual Studio 2017 node –inspect node –debug更改为node –inspect来运行testing? 另外,我应该提到,我不能通过在脚本参数中添加–inspect来解决问题。

单独运行摩卡testing

我的test/项目充满了摩卡testing: test/ ├── a.coffee └── b.coffee 说,一个a.coffee是 console.log 'Executing A test!' global.foo = 'FOO' 和b.coffee是 console.log 'Executing B test!' console.log 'Expecting foo not defined:', assert.equal(foo, undefined) 在执行摩卡时: $ mocha –compilers coffee:coffee-script test/* Executing A test! Executing B test! Expecting foo not defined: false 它看起来像testing共享相同的全球对象(我想避免)… 有没有办法单独执行每个testing? 谢谢。

当摩卡testing失败时,它将一个对象logging到控制台

当我所有的testing通过,一切都按预期工作。 然而,当一个testing失败并且任何记者处于活跃状态时,赛跑者都会打印出一个代表追踪痕迹的对象,而不是我在屏幕截图中看到的格式不正确的错误消息 > mocha –reporter spec –ui bdd –ignore-leaks Site Routes GET /sites ✓ should return a 200 OK ✓ should be a JSON response ◦ should be an array: { "date": "Fri Apr 19 2013 16:09:20 GMT-0400 (EDT)", "process": { "pid": 34270, "uid": 1032026306, "gid": 116266774, "cwd": "/Users/squinn/Projects/armada", "execPath": "/usr/local/Cellar/node/0.10.4/bin/node", "version": "v0.10.4", "argv": [ […]

用摩卡testing二进制file upload

我目前正在研究一个带有nodejs的小API,并且要求通过接收一个二进制string来完成file upload。 我不知道该怎么做,是testing它与摩卡,所以我一直在做一些search,发现堆栈溢出unit testingfile upload与摩卡 ,它是一个很好的开始,但它不会工作,因为它发送一个多部分的forms,什么我要求客户端发送的api文件就是一个stream。 inheritance人我的控制器: exports.uploadVideo = function(req, res, next) { var video = "public/video/" + req.params.videoId + ".mp4", util = require('util'), exec = require('child_process').exec; var newFile = fs.createWriteStream("./uploads/" + video); req.pipe(newFile); req.on('end', function () { var cmd = 'qtfaststart ' + './uploads/' + video; var qtfaststart = exec(cmd, function(error, stdout, stderr){ if […]

运行摩卡咕噜声 – 当testing失败时放弃

我正试图学习这个自动unit testingmalarkey。 我想使用Grunt自动运行我的Mochatesting,并将testing结果输出到一个文件。 据我所知,我需要使用grunt-mocha-cov 。 我有这样的工作:当testing通过Grunt写出结果文件确定。 但是,当其中一个失败,我得到这个: Running "mochacov:all" (mochacov) task Warning: Use –force to continue. Aborted due to warnings. 并没有创build文件。 谁能告诉我哪里出错了? 我的项目是这样组织的: 我的testing文件夹包含一个文件,test.js,看起来像这样: var chai = require("chai"), assert = chai.assert, expect = chai.expect; var foobar = { sayHello: function() { return 'Hello World!'; } } describe('Foobar', function() { describe('#sayHello()', function() { it('should work with […]

用mochatestingnode.js – Newbie

我已经开始在我的JS项目中实现TDD。 我为此目的实施了摩卡。 由于这些是我所做的第一步: 安装了node.js 为我的项目在全球和本地安装了摩卡。 写了package.json设置依赖关系。 写了makefile。 写了.gitignore以避免上传node_modules文件夹。 文件夹结构 项目 – js —- filetotest.js – test —- test.js 我想要做的就是运行命令make test,以便在testingfiletotest.js文件的test.js中运行testing。 我读了关于使用导出的node.js方法。 但有没有办法将文件包含在testing套件中? 我被困在这里,我认为我的怀疑更多是关于概念而不是科技的东西。 会很感激你的帮助。 澄清一下我想做什么: https : //nicolas.perriault.net/code/2013/testing-frontend-javascript-code-using-mocha-chai-and-sinon/ 我想通过命令行得到类似的结果。 非常感谢, 吉列尔莫

摩卡不会在更改后重新运行我的testing

使用testing环境 chokidar (用观察者 chokidarvariables触发testing文件的变化), node.js (在浏览器中输出testing结果), mocha+chai (testing套件), 使用自定义记者(如编程使用摩卡中所述) 当testing文件被改变时, 观察者捕捉事件,并且应该重新运行testing。 问题 :我的testing只执行一次! 当试图再次运行我的testing(当文件第二次在磁盘上改变时), mocha不会像第一次那样重新处理testing。 我怀疑我应该重置一些内部运行属性,但看在摩卡github库,我似乎没有find正确的方法来调用。 请注意,我的记者“class”只收到了第二个观察员wakup上的mocha runner.on(“end”,…)的一个事件。 watcher.on('change', function(path, stats) { // … console.log('—–File ' + path + ' has been changed ' + "[" + stats.size + "b]" ); Mocha = require('mocha'); Mocha.prototype.printFiles = function(){ console.log("Existing files = "); console.log( this.files ); return […]