Articles of 摩卡

如何使伊斯坦布尔生成所有我的源代码覆盖?

目前伊斯坦布尔只是生成我的testing中使用的文件的覆盖率,这是可以的,但似乎打破了有些覆盖面的目的。 我没有伊斯坦布尔configuration,并通过npm test与以下脚本string调用它: $ istanbul cover _mocha — -R dot –check-leaks –recursive test/ 有没有办法为我所有的源代码生成覆盖率?

如何模拟mocha.js进行unit testing的依赖类?

鉴于我有两个ES6类。 这是A类: import B from 'B'; class A { someFunction(){ var dependency = new B(); dependency.doSomething(); } } 和B类: class B{ doSomething(){ // does something } } 我使用摩卡进行unit testing(与ES6的babel),柴和sinon,这真的很棒。 但是在testingA类时,我怎样才能为B类提供一个模拟类? 我想嘲笑整个B类(或所需的function,实际上并不重要),以便类A不执行真正的代码,但我可以提供testingfunction。 这就是摩卡testing现在的样子: var A = require('path/to/A.js'); describe("Class A", () => { var InstanceOfA; beforeEach(() => { InstanceOfA = new A(); }); it('should call B', () […]

运行testing之前清除testing数据库

在运行testing套件之前清理数据库的最好方法是什么(是否有npm库或推荐的方法)。 我知道before()函数。 我使用节点/快递,摩卡和续集。

如何在nodejs中模拟请求和响应来testing中间件/控制器?

我的应用程序有几个层次:中间件,控制器,pipe理器。 控制器接口与中间件接口相同:(req,res,next)。 所以我的问题是:我怎样才能testing我的控制器,而无需启动服务器,并发送“真正的”请求本地主机。 我想要做的是创build请求,响应实例为nodejs然后只是调用controllers方法。 像这样的东西: var req = new Request() var res = new Response() var next = function(err) {console.log('lala')} controller.get_user(req, res, next) 任何意见是高度赞赏。 谢谢! PS我想这样做的原因是,最后我想testing响应对象是否包含玉视图的正确variables。

unit testing在Nodejs中发出的事件的最好方法是什么?

我正在写一堆摩卡testing,我想testing一下发生的特定事件。 目前,我正在这样做: it('should emit an some_event', function(done){ myObj.on('some_event',function(){ assert(true); done(); }); }); 但是,如果这个事件从不发生,它会使testing套件崩溃,而不是失败那个testing。 什么是testing这个最好的方法?

获取TypeError:这不是在mocha中使用Buffer.from的types数组

我正在使用Mocha / Chai来unit testing一个最近开始使用nodejs的Buffer对象来解决不同的问题的库。 我在unit testing中得到这个错误信息: TypeError: this is not a typed array. at Function.from (native) at Object.hashesMatch (index.js:29:18 at Context.<anonymous> (test/test.js:25:22) index.js第29行是我使用nodejs的缓冲区… var b = Buffer.from ('some string or other'); 我无法find一个polyfill或解决方法,所以将不胜感激的build议。 谢谢

摩卡beforeEach vs之前执行

最近我碰到一个我无法解释的问题。 在这些testing中我有很多代码,所以我会尽我所能来捕捉这个主意 我有这样的testing: describe('main page', function(){ beforeEach(function(done){ addUserToMongoDb(done); // #1 }); afterEach(function(done){ removeUserFromMongoDb(done); }); context('login', function(){ it('should log the user in, function(){ logUserIn(user_email); // #2 – This line requires the user from the beforeEach }); }); context('preferences', function(){ before(function(done){ //#3 logUserInBeforeTest(user_email); }); it('should show the preferences', function(){ doCheckPreferences(); // #4 }); }); }); 问题是, #1运行良好。 […]

在使用摩卡和伊斯坦布尔时不包括覆盖范围内的文件

如何使用摩卡和instanbul从覆盖率报告中排除文件夹和文件(按path)? 我想排除一个configuration,而不是 /*istanbul ignore next*/ 在每个文件中。 (Jenkins生成的报告使用) 谢谢,

使用mocha-phantomjs来自动化functiontesting

我的项目使用:Node,Coffeescript,SocketIO,Browserify和Mocha。 (用于标准服务器端unit testing的mocha) 我想用一个无头浏览器自动化一些客户端接口testing。 PhantomJS看起来像是理想的select(由于networking套接字的支持而select僵尸)。 PhantomJS页面警告说,这不是一个testing运行者,据我所知,他们build议使用mocha-phantomjs项目来驱动你的testing。 所以我已经能够运行示例testing(例如mocha-phantomjs tests/mixed.html ),但是我目前的问题实际上是在testing中使用PHANTOM。 所有mocha-phantomjs回购的样本testing似乎都使用标准的mocha服务器端unit testing。 例如,我可以轻松运行mocha-phantomjs tests/mixed.html来查看枯燥的旧unit testing。 或者我可以运行phantomjs tests/login.coffee来加载我的login屏幕…但是我怎么phantomjs tests/login.coffee两个结合起来,对我在login屏幕上看到的内容做出断言? 我在网上找不到任何这样的例子,我正在努力理解这个最好的方法。 希望这一切都有道理。 预先感谢您的帮助。 更新 :我发现作者( 这里 )的以下build议,但我真的不明白如何处理它: phantomjs lib/mocha-phantomjs.coffee test/mixed.html

Chai与should.js与Mocha为Node.js

我看到使用Chai的文章,但是should.js来自Express和Mocha的制作人TJ Holowaychuk,这是一个很好的谱系。 我应该使用Chai还是使用Mocha的should.js来创build一个仅用于Node.js服务器端的新项目?