Tag: unit testing

嘲讽net.Socket为unit testing

我创build了一个包装对象与networking模块进行交互。 实现这个包装器的对象可以注册在net.Server发生任何事件时被调用的callback函数。 现在我试图testing这些callback,我不知道如何创build一个假的套接字,因为它来自一个新的连接,传递给callback。 有没有人有任何想法如何做到这一点? 非常感谢你。

unit testingnodejs事件

我正在使用本答案中解释的解决scheme来解释我的节点应用程序中的unit testing事件。 但是,setTimeout函数永远不会调用,所以我的testing通过时,他们应该失败。 这里是一个例子: suite('myTests', function() { test('myFunction_whenCalled_emitsEvent', function() { var myClass = new MyClass(); var eventTimeout = setTimeout(function() { assert(false); }, 1000); myClass.on('something', function() { clearTimeout(eventTimeout); }); myClass.doSomething(); // this does not emit the 'something' event }); }); 我预计这会失败,1秒钟后,只要事情没有发生。 我在assert(false)行放置了一个断点,它从来没有被打中。 有人能指出我正确的方向吗? 谢谢。

我怎样才能伪造全球背景来隔离testing?

我的unit testing运行在node.js中(使用mocha,chai和sinon)。 我正在testing的代码是为了在浏览器中运行。 一些代码定义全局的东西,而其他代码期望有一个window对象,并将对象添加到window 。 (具体来说,我使用一个垫片来模拟ES6的Promise对象。)到目前为止,我通过添加global.window = global;伪装窗口对象global.window = global; 到目前为止只能得到我 当我想拆除我的假环境下一组testing时,问题就出现了。 我已经尝试在before()或beforeEach()函数中执行我的require()调用,并试图手动删除after()或afterEach()函数中创build的对象。 两件事中的一件发生在每次。 全局对象从一个testingJS文件持续到下一个,或者全局对象在所有的testing中都是神秘的。 我不确定这是否与摩卡运行testingJS文件或require()如何工作的方式有关,但我没有想法。 以前有人解决过这个问题吗?

在Node.js net.Socket实例上模拟ECONNRESET错误

我正在写一些unit testing,我想在一个net.Socket实例上模拟一个连接丢失(ECONNRESET),作为其中一个testing的一部分。 什么是最好的方式去做这件事? 谢谢

实习生unit testing:加载需要浏览器上下文的模块

我已经为我们的控制器/路由器编写了简单的unit testing,但不能让他们通过实习运行..路由器模块需要加载其他模块,例如pace.js,在这个实例中,我需要将它添加到实习生的config文件作为loader / packages中的一个依赖项…然后加载Pace模块ok,但是实习生的runner失败,并且出现'Reference Error:window is not defined'。 步伐模块需要在浏览器中运行,但实习生似乎在节点上下文中运行它…我正在使用以下命令: node node_modules/intern/client.js config=test/intern 我试过这个答案 ,即。 从loader / packages中取出Pace模块,并且只有当intern在主机浏览器上下文时才添加testcase,但是实习者跳过我的testing用例,因为它不能进入​​if(has)块…这里是我添加到intern.js的代码: var suites = []; suites.push('test/unit/all'); if (has('host-browser')) { suites.push('test/unit/app/controller/Router'); } return { // … suites: suites, // … }; 实习生似乎将其上下文切换到节点,我怎样才能保持它在浏览器?

使用tsUnit和NodeJs应用程序

所以我发现tsUnit库,我想弄清楚如何在nodeJS项目中使用。 我发现tsunit页面上的示例项目有.html文件,但我希望能够运行unit testing。 import tsUnit = require('../tsUnit'); module CalcTest { class TryATest extends tsUnit.TestClass { test() { this.areIdentical(4,4); } } } var test = new tsUnit.Test(CalcTest); var result = test.run(); 我得到的结果是: var previousHandler = window.onhashchange; ReferenceError: window is not defined at TestRunLimiter.setRefreshOnLinksWithHash at new TestRunLimiter at new Test at Object.<anonymous> at Module._compile at Object.Module._extensions..js at […]

在unit testing中,如何testing新缓冲区中创build的值?

假设我们有一些这样的代码: callFunction(new Buffer(foo)); 我们想用sinon.js间谍unit testing这个调用: var spy = sinon.spy(callFunction); expect(spy.to.have.been.calledWith(foo)); 这将失败,因为callFunction是用new Buffer(foo)而不是foo调用的。 如果我们expect(spy.to.have.been.calledWith(new Buffer(foo))testing通过expect(spy.to.have.been.calledWith(new Buffer(foo))但为每个testing创build新的缓冲区是否明智?有没有更好的方法来做到这一点?

如何使用jasmine-nodetesting函数,内部调用返回promise的函数?

我只是尝试了茉莉节点。 我需要一些有关承诺解决的帮助。 我有简单的js文件 //dataService.js var Q = require('q'); console.info("Q is "+Q); exports.test = function() { console.warn("Will call promise now"); this.getQuestions().then(function() { console.log("Test.."); }); }; exports.getQuestions = function() { var deferred = Q.defer(); for(i=0; i<=10; i++) { if(i===10) { deferred.resolve(i); } } return deferred.promise; // return { // 'Question1': 'What is your name' // } } […]

从节点中的模块加载特定的文件

我写了一个模块, simpledblayer-mongo 。 模块依赖于simpledblayer (它提供了DB特定的function)。 我有unit testing的问题。 这里的问题是: simpledblayer-mongo获取来自simpledblayer ( test.js文件)的testing列表 使用GIT很容易在simpledblayer-mongo定义一个“submodule”,并确保子模块位于node_modules下。 所以,所有testing的文件将在node_modules / simpledblayer / tests中 使用NPM,我将simpledblayer定义为devDependency 。 没有真正的需要,因为simpledblayer simpledblayer-mongo需要simpledblayer-mongo而不pipe它是否直接依赖 我遇到的问题是:用户可能从GIT获得模块(模块将保证在node_modules / simpledblayer中)或NPM(模块可能被放置在node_modules中,或者实际上可能被重复/ etc和它可能在任何地方,真的)。 我需要加载simpledblayer的test.js文件, 无论它在哪里(只要simpledblayer本身作为模块是simpledblayer )。 从模块中获取特定文件的任何提示,而不pipe模块的path是什么? 谢谢! 芝加哥商业交易所。

节点js的unit testing

我是nodejs的新手,需要为节点项目编写unit testing。 我尝试学习摩卡,有两个问题: 当我为函数A编写unit testing时,在A中也使用函数B,那么我怎样才能模拟B的输出呢? 我如何在app.js中unit testing这些端点 像app.get,app.put。 有人可以给我一些build议或简单的例子吗? 有人可以给我一些关于编写nodejsunit testing的build议,非常感谢。 非常感谢大家。