Tag: 摩卡

如何以编程方式closuresExpressJS的实例进行testing?

我想弄清楚如何closuresExpress的一个实例。 基本上,我想要.listen(port)调用的反向 – 我如何获得一个Express服务器停止监听,释放端口,并干净关机? 我知道这似乎可能是一个奇怪的查询,所以这里是上下文; 也许还有另一种方法来解决这个问题,我正在考虑错误的方式。 我正在尝试为我的socket.io/nodejs应用程序设置一个testing框架。 这是一个单页面的应用程序,所以在我的testing脚本(我使用摩卡 ,但这并不重要),我想能够启动服务器,运行testing,然后closures服务器。 我可以通过假设服务器在testing开始之前打开,或者通过其中一个testing启动服务器,并且随后的每个testing都假定它已经启动,但是这真的很混乱。 我更愿意让每个testing文件都以适当的设置启动一个服务器实例,然后在testing结束时closures这个实例。 这意味着没有奇怪的依赖运行testing,一切都是干净的。 这也意味着我可以做启动/关机testing。 那么,有关如何做到这一点的任何build议? 我曾经想过手动触发exception来使它失效,但这似乎很混乱。 我已经挖掘了快速文档和来源,但似乎无法find任何方法,将closures服务器。 在socket.io中也可能有这样的一些东西,但是由于套接字服务器只连接到了Express服务器,所以我认为这需要在快速层进行。

使用mocha和node.js对私有函数进行unit testing

我正在使用摩卡来testing为node.js编写的应用程序 我想知道是否可以unit testing没有在模块中导出的函数。 例: 我在foobar.js定义了很多这样的函数 function private_foobar1(){ … } function private_foobar2(){ … } 和一些作为公众出口的function: exports.public_foobar3 = function(){ … } testing用例的结构如下: describe("private_foobar1", function() { it("should do stuff", function(done) { var stuff = foobar.private_foobar1(filter); should(stuff).be.ok; should(stuff)….. 显然这是行不通的,因为private_foobar1没有被导出。 unit testing私有方法的正确方法是什么? 摩卡是否有一些内置的方法来做到这一点?

用Mochatestingjavascript – 我如何使用console.log来debuggingtesting?

我正在使用JavaScripttesting运行“Mocha”。 我有一个失败的testing,所以我会debugging它使用console.log 。 但是当testing运行时,没有输出(仅来自Mocha的testing结果)。 摩卡似乎已经捕获并压制了我的console.log输出! 我怎样才能让摩卡显示我的输出? (在testing失败)? 编辑: 巨大的歉意! – console.log在testing过程中不起作用! 我一定是期待它压制输出,我没有正确地检查我自己的代码。 感谢您的回应。 所以…说的话…也许它实际上会是很好的压制输出testing通过? 嗯… 在一个相关的说明:我想使用console.log因为我有很多麻烦试图让Eclipsedebugging器连接到node.js. 我是唯一一个发现这个棘手的人吗? 你们如何debuggingnode.js? 用debugging器,还是用console.log语句?