Articles of mocha

摩卡忽略了一些testing,尽pipe它们应该运行

我正在重构我的express-decorator NPM包的克隆。 这包括重构先前使用AVA进行的unit testing 。 我决定使用Mocha和Chai来重写它们,因为我喜欢他们定义testing的方式。 那么,我的问题是什么? 看看这个代码(我把它分解来说明问题): test('express', (t) => { @web.basePath('/test') class Test { @web.get('/foo/:id') foo(request, response) { /* The test in question. */ t.is(parseInt(request.params.id), 5); response.send(); } } let app = express(); let controller = new Test(); web.register(app, controller); t.plan(1); return supertest(app) .get('/test/foo/5') .expect(200); }); 此代码工作 。 这里(基本上)是相同的代码,现在使用Mocha和Chai和多个testing : describe('The test express […]

调用ramda组成nodejs类

我有以下方法skipLoggingThisRequest在我试图testingnode js类。 该方法应该返回true或false ,根据请求中的path,使用ramda compose来获得该值。 但是在我的testing中,无论我在请求对象中设置了什么path,我的skipLoggingThisRequest总是返回true。 我在这里错过了什么? 我的课: import { compose, filter, join, toPairs, map, prop, flip, contains, test, append } from 'ramda' import { create, env } from 'sanctuary' import { isEmpty, flattenDeep } from 'lodash' import chalk from 'chalk' import log from 'menna' class MyClass { constructor (headerList) { this.headerWhiteList = flattenDeep(append(headerList, [])); […]

用mocha / superagenttesting本地https服务器

所以我看到几个月前有一个pull请求,superagent允许你在请求中指定CA. 似乎没有更新文档来反映这种变化,所以我似乎无法弄清楚如何去做。 我正在尝试在本地机器上testing公开http和https端点的REST服务。 所有的http工作正常,SSL的….好…..没有那么多。 昨天花了整整一天跑完证书错误,我90%肯定我有服务器正常工作。 curl似乎是这样想的,香草节点请求对象也如此。 我认为superagent可能是在引擎盖下创build一个请求 – 我只需要知道如何通过在CA为它。 提前致谢。

摩卡与期望是不工作的testing错误

在下面的脚本中只有一个testing通过。 testing错误(throw Error())失败,消息1)testing应该抛出错误: var expect = require('chai').expect; describe("a test", function() { var fn; before(function() { fn = function(arg){ if(arg == 'error'){ throw new Error(); }else{ return 'hi'; } } }); it("should throw error", function() { expect(fn('error')).to.throw(Error); }); it("should return hi", function() { expect(fn('hi')).to.equal('hi'); }); }); 如何改变期望来testing错误?

JSDom不加载相关的脚本

所以我试图用jsdombuild立一个摩卡testing,经过多次debugging,我把问题的范围缩小到jsdom执行绝对URL脚本(例如http://code.jquery.com/jquery-2.1.3.min.js ),但不是相对的URL脚本(例如js/script.js )。 我的test.js如下: var assert = require("assert"); var fs = require('fs'); var jsdom = require("jsdom"); describe('Foo Test', function(){ it('Foo Check', function(done){ this.timeout(5000); jsdom.env({ html: fs.readFileSync('index.htm') ,features: { FetchExternalResources: ["script"] ,ProcessExternalResources: ["script"] } ,done: function(errors, window){ if(errors != null) console.log('Errors', errors); var $ = window.$; // $ is defined var foo = window.foo; //foo is […]

在编写回送testing时如何传递input参数

我正在使用回送testing来为我的strongloop API代码编写一个testing驱动的开发。 在这里他们没有任何关于这个的详细文档,所以我坚持使用API​​调用传递参数的情况 例如我有一个下面的例子, Method : PUT URL : /api/admin/vineyard/<vineyard_id> 我需要通过这个URL下面的参数 1. 'vineyard_id' is a id of vine, it should be an integer . 2. in header = 'token' 3. in body = '{'name':'tastyWine','price':200}' 我怎样才能传递这三个参数与这个API? 如果只有两种参数,我可以轻易处理 例如: Method : POST `/api/user/members/<test_username>/auth'` arguments : test_username and password 我可以这样处理, lt.describe.whenCalledRemotely('POST', '/api/user/members/'+test_username+'/auth', { 'password': test_passwords }, 但是,我怎样才能处理上述情况,非常感谢您为这个例子的答案。

如何使用Mocha和ChaitestingLogin API NodeJs

我是新来的testing驱动开发,我想testing我的loginAPI,但我似乎无法完全理解如何实现与数据库的testing,什么是正确的方法来做到这一点?

摩卡 – 之前()不执行“之前”按预期?

在mocha + chaitesting代码中,我有一个before块来初始化一些variables“accPolicyData.accSizes”。 1 var expect = require('chai').expect; 2 var dataDriven = require('data-driven'); 3 var accPolicyData = require("./samples/accounts-policy-data"); 4 var configReadr; 5 var ecpDB; // = require('ecp_model'); 6 var utils = require('../test_utils'); 7 8 describe("Test suite for account policy limits validation", function() { 9 10 before(function(done) { 11 12 // read and process commandline args. […]

Webpack在Node.js App中打破摩卡

我有一个使用Mocha和Expect进行testing的node.js应用程序。 所有的testing工作很好,直到我安装了webpack的反应。 现在当我运行“npmtesting”时,出现以下错误: Error: Cannot find module 'should' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object.<anonymous> (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\watchpack\test\DirectoryWatcher.test.js:2:1) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\lib\mocha.js:230:27 at Array.forEach (native) at Mocha.loadFiles (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\lib\mocha.js:227:14) at Mocha.run (C:\Users\Brian\version-control\tysons-tech-map-redone\node_modules\mocha\lib\mocha.js:495:10) […]

摩卡更改afterEach超时

我正在用摩卡和柴编写一个节点应用程序。 某些testing调用外部API进行集成testing,这可能需要90秒才能执行此操作。 为了正确清理,我定义了一个afterEach() – 块,它将删除任何生成的远程资源,以防期望失败,并且一些资源没有被删除。 testing本身有一个增加的超时,而其余的testing应保持其默认和小超时: it('should create remote resource', () => {…}).timeout(120000) 然而,我不能用afterEach().timeout(120000)做同样的afterEach().timeout(120000) ,因为这个函数不存在 – 由于未知的资源名称,我也不能使用function () notation: describe('Resources', function () { beforeEach(() => { this._resources = null }) it('should create resources', async () => { this._resources = await createResources() expect(false).to.equal(true) // fail test, so… await deleteResources() // will never be called }) afterEach(async() […]