Articles of 摩卡

如何使用mocha和supertesttesting头部参数的快速restapi?

我必须testing我的restapi。 某些路由在用户身份validation令牌的http请求标头中需要一个值。 我已经在纯JavaScript代码中分离了我的有趣业务逻辑,但是我找不到在http请求头中testing需要令牌的路由的方法。 欢迎任何其他摩卡和/或超级食品的替代品。

Mocha-phantomjstesting没有输出

我已经在这里成功安装了节点模块“mocha-phantomjs”。 我写了下面的testing用例: test1.js describe("DOM Tests", function () { var el = document.createElement("div"); el.id = "myDiv"; el.innerHTML = "Hi there!"; el.style.background = "#ccc"; document.body.appendChild(el); var myEl = document.getElementById('myDiv'); it("is in the DOM", function () { expect(myEl).to.equal(null); }); it("is a child of the body", function () { expect(myEl.parentElement).to.equal(document.body); }); it("has the right text", function () { expect(myEl.innerHTML).to.equal("Hi […]

为什么摩卡需要在devDependencies中?

就这一点而言,摩卡在devDependencies中像教程所说的那样足够合乎逻辑,毕竟它是一个dev的依赖。 但实际上,你安装它,所以你可以运行摩卡作为一个命令。 而且据我所知,在package.json中提到这一点是没有什么区别的。 那么有没有必要明确列出它?

如何像可选的asynchronouscallback实现摩卡?

我想实现可选的asynchronouscallback与摩卡一样。 我的意思是我想要有可以是同步和asynchronous的callback函数。 当用户使用可选的callback参数“完成”时,它是asynchronous的,当没有callback参数比同步。 //同步版本 它('做一些同步',function(){ console.log('这是同步版本') }); //asynchronous版本 它('做一些asynchronous,function(完成){ setTimeout(function(){ 完成(真); },1000); }); 怎样才能区分callback是同步还是asynchronous呢? 任何想法如何实现这一点?

用mocha.jstestingCLI应用程序

我想testingCLI应用程序,并希望在testing运行时接收用户input,因为mocha.js具有200ms限制testing失败。 所以我想知道如何在脚本获得input时暂停testing,并在获得input后恢复。

如何在摩卡testing中模拟无连接

我只是想知道是否有办法在摩卡unit testing中模拟“无连接”事件。 我有一个方法,返回一个承诺,应该等待与轮询策略的互联网连接,我想用摩卡testing。 有一种方法可以实现这样的结果。 一些代码: it('should wait for connection', function(done) { this.timeout(2500); //simulate an internet connection drop here wait.connection().then(done); setTimeout(//activate connection, 2000); }); 谢谢你的回应。 [编辑]:这里有我想testing的代码: var wait = { connection: function() { 'use strict'; var settings = {retry: 1000}; return new Promise(function(resolve) { (function poll() { needle.get('https://api.ipify.org', function(error, response) { if(!error && response.statusCode === 200 […]

伊斯坦布尔与摩卡,nodejs总是给出相同的覆盖面

我已经安装了istanbul来检查节点中的apis的代码覆盖率。 如果testing覆盖率不正确,我会觉得很困惑。 我有一个目录结构为-app包含-api -controllers -models -test -api_test.js 运行istanbul cover _mocha运行istanbul cover _mocha所有testing用例,并将覆盖范围返回为语句:46.55%(27/58)分支:0%(0/18)函数:0%(0/13)行:48.21%( 27/56) 但是后来我删除了一堆testing用例,重新运行伊斯坦布尔仍然覆盖stantics是一样的。 根据我对这个工具的理解,我应该根据我的testing用例的所有代码行数来给我统计,因为在我运行较less的testing时,技术上应该降低testing覆盖率。 此外,我的报告的HTML只包含一些模型(甚至不是所有的)的覆盖率统计所以这增加了困惑是否我configuration了testing套件和伊斯坦布尔是否正确。 任何帮助将不胜感激,因为我是相当新的节点。

如何在一个命令/进程中执行服务器和客户端testing?

因为我正在使用前端的AngularJS和服务器的Node.js开发Web应用程序。 现在我正在使用Mocha(+ Chai + Supertest)编写节点服务器(基于Express)的testing,以及使用Mocha和Testacular作为testing运行器的客户端testing,因为Testacular是Angular的首选工具。 请注意,Angular应用程序是“embedded”在节点的应用程序,因为它位于模板文件。 我的testing过程:对于服务器testing,我只是npm test ,即mocha <my-test-folder> <my-test-options> ; 对于客户端testing,我启动了一个观察所需文件中的变化的Testacular服务器。 但是我不喜欢这个并行和不连贯的过程,我相信有一个更好,统一的自动化方式。 可以帮助我完善这个过程吗?

为什么beforeEach不能在mocha的第二个describe()语句中运行?

第一个beforeEach清除了用户集合…这对于第一组testing(#save()描述)工作得很好……但是对于第二个描述(“ beforeEach ()”)不适用。 describe('User', function(){ beforeEach(function(done){ //clear out db User.remove(done); }); describe('#save()', function(){ beforeEach(function(done){ user = new User(fakeUser); done(); }); it('should have username property', function(done){ }); it('should not save if username is not present', function(done){ }); }); describe('#find()', function(){ beforeEach(function(done){ user = new User(fakeUser); user.save(function(err, user){ done(); }); }); it('should find user by email', function(done){ […]

如何使用createReadStream函数链接testing与摩卡?

我有这个function,我想用摩卡testing: exports.readFile = readFile; function readFile(filepath, startOffset, outputStream){ var fileSize = fs.statSync(filepath).size; var length = fileSize – startOffset; console.log(startOffset); fs.createReadStream(filepath, {start: startOffset, end: fileSize} ).pipe(outputStream); } 我使用下面的代码来testing我的function: var edp = require("edp.js"); var Buffered = require("buffered-stream"); var sampleData = 'A small test.'; fs.writeFileSync('./test.txt', sampleData); var filedata = ''; var smallBufferedStream = new Buffered(20); smallBufferedStream.on("data", function(data){ filedata […]