Articles of 摩卡的

如何确保testing对象属性的更改不会传播到其他testing用例?

这是foo.js : var Foo; Foo = function () { var foo = {}; foo.get = function (url) { // [..] return Foo.get(url); }; return foo; }; Foo.get = function (url) {}; module.exports = Foo; 这是foo.js一个testing用例: var expect = require('chai').expect, sinon = require('sinon'); describe('foo', function () { var Foo, foo; beforeEach(function () { Foo = require('foo.js'); […]

我的注册testing与摩卡无效的csrf令牌

当我尝试运行我的注册testing时,得到“ForbiddenError:无效的csrf标记”。 我确实从我的函数中获得了一个令牌,但是我认为我错误地实现了它。 也许我必须以某种方式将其设置在标题中? 我的testing文件 var request = require('supertest'); var server = request.agent(config.TEST_URL); // function to get the csrf token from the client function extractCsrfToken (res) { var $ = cheerio.load(res.text); return $('[name=_csrf]').val(); } describe('POST /register', function () { var csrfToken; beforeEach(function (done) { server.get('/register') .end(function (err, res) { if (err) return done(err); csrfToken = extractCsrfToken(res); […]

如何在运行testing之前从摩卡文件读取数据?

我目前正在API上运行testing – 使用Mocha运行时没有问题。 testing数组存储在一个variables – “testing”在文件的顶部。 我想从文本文件中读取testing信息,并在运行testing(一次)之前将信息parsing成variables。 我试图使用before()同步和asynchronous(下面) //Synchronously describe("API Tests", function (done) { before(function(){ tests = fs.readFileSync('./json.txt', 'utf8'); tests = JSON.parse(tests); }); for (var i = 0; i < tests.length; i++) { runTest(tests[i]); } done(); }); //Asynchronously describe("API Tests", function () { var tests = ""; before(function(){ fs.readFile('./json.txt', 'utf8', function(err, fileContents) { if (err) […]

摩卡testing无法在nodejs服务器上运行

目的 找出为什么我的testing崩溃,当我失败的断言。 背景 我有一个非常简单的NodeJs应用程序,我正在使用摩卡 BDD没有断言框架(只是从NodeJs基本断言)。 我运行我的摩卡testing使用npm test ,我有以下package.json文件: { "name": "server", "version": "1.0.0", "description": "Mah Project!", "main": "index.js", "scripts": { "test": "mocha test.js", "test-kitten": "mocha -R nyan test.js", "watch": "gulp watch", "start": "node server.js" }, "repository": { "type": "git", "url": "" }, "keywords": [ "awesome" ], "author": "Rick and Morty", "license": "ISC", "homepage": "", "dependencies": […]

运行摩卡testing节点 – “描述”没有定义

我正在尝试运行Mochatesting,例如,一个事件在Node程序中触发。 我试图避免使用child_process 。 阅读这个 wiki页面后,我设置了我的代码如下: var Mocha = require("mocha"); var Reporter = require("./reporter"); var mocha = new Mocha({ ui: "tdd", reporter: "spec" }); mocha.addFile("test.js"); mocha.run(); test.js有一个有效的摩卡testing。 但是当我运行这个,我不断得到ReferenceError: describe is not defined 。 为什么发生这种情况? (当我在Google上search这个问题时,大部分的解决scheme都是关于运行test.js而不是摩卡的。

Nodejs摩卡/应该在静音模式

我尝试在摩卡上find一个选项,以避免当我的某个断言失败时出现如此巨大的错误解释。 5 passing (561ms) 1 failing 1) Actors Actors list should get a list of well formed actors: Uncaught AssertionError: expected … to have property properties at test/actors.js:70:47 at Array.forEach (native) at Test.<anonymous> (test/actors.js:65:35) at Test.emit (events.js:95:17) at IncomingMessage.emit (events.js:117:20) at _stream_readable.js:943:16 我想只是传递和失败的信息,而不是其他的。 任何想法 ? 干杯,

如何用process.nextTick进行testing

我正在使用摩卡来testing一些Node.js代码,并希望使用process.nextTick()来调用方法的callback。 代码 @getNouns: (callback) -> @_wordnik.randomWords( includePartOfSpeech: 'noun', (e, result) -> throw new Error('Wordnik Failed') if e process.nextTick -> callback(result) ) 考试 it 'should call a callback with the response', (done) -> sinon.stub(Word._wordnik, 'randomWords').yields(null, [ {id: 1234, word: "hello"}, {id: 2345, word: "foo"}, {id: 3456, word: "goodbye"} ] ) spy = sinon.spy() Word.getNouns (result) -> […]

在“集成”testing中了解摩卡语法

我有一个相当广泛的背景与Ruby和Rspec。 然而,当我学习Node和Mocha时,我遇到了一些我似乎无法理解的语法。 以本教程为例,testing路由包含以下内容(使用CoffeeScript)。 还应该指出,我已经看到了很多其他的地方向摩卡解释初学者的例子。 require "should" routes = require "../routes/index" describe "routes", -> describe "index", -> it "should display index with posts", -> req = null res = render: (view, vars) -> view.should.equal 'index' vars.title.should.equal('My Coffeepress Blog') routes.index(req, res) 如果我理解正确,这个testing设置模拟请求和响应variables(分别为req和res),并将它们发送到routes.index()函数。 但是, 我不明白的是,为什么以及如何在render()函数调用中进行断言。 这似乎是一个完全不同的testing方法,因为我习惯于设置数据,testing数据与预期值,并将数据撕掉。 在这里,似乎“build立数据”(创build一个模拟的res对象)的一部分正在作出断言。 任何人都可以解释这一点与Rspecstream利的人?

摩卡testing案例抛出错误:预计200“OK”,得到403“禁止”

我正在使用mochajs来处理我的平均应用程序服务器端testing用例。testing用例显示错误, Error: expected 200 "OK", got 403 "Forbidden" 。 我试图在我试图testing的函数内部使用控制台日志,但他们从来没有得到执行。 我无法找出问题。 有人可以帮我弄这个吗。 我的控制器 exports.signin = function(req, res) { req.body.username = new Buffer(req.body.username, base64').toString('ascii'); User.findOne({ username: req.body.username.toLowerCase() }, function(err, user) { if (err) { //do something } else if (!user) { //do something } else { //do something } }); }; 我的testing案例 it('should be able to […]

AssertionError崩溃摩卡

我正在使用摩卡进行unit testing,而不是显示记者摩卡崩溃的第一个错误的所有抛出的断言错误。 有什么build议么? 我碰到的错误是这样的: /Users/Robert/Code/JRJ/Server/node_modules/chai/lib/chai/assertion.js:106 throw new AssertionError(msg, { ^ AssertionError: expected 200 to equal 202 npm ERR! weird error 8 npm ERR! not ok code 0 无论是使用Chai还是内置的assert库,都是一样的。 我用这个命令运行Mocha(我用npm test运行它): mocha –reporter 'spec' –recursive 而我正在使用的库版本是这些: 节点:0.10.18 摩卡:1.12.0 柴:1.8.0 hapi:1.10.0 testing代码: var hapi = require('hapi'), expect = require('chai').expect, assert = require('assert'); describe("Customer API", function(){ var server […]