Tag: unit testing

unit testingNodeJS Promise里面的一个函数

我试图unit testing一个函数,调用承诺… 使用摩卡,Sinon。 我有这样的function块: myfile.js: let OuterDependecy = require('mydep'); function TestFunction(callback) { OuterDependency.PromiseFunction().then(response => { //some logic here }).catch(err => {callback(err)}); 在我的testing里面,我使用了一些代用品来嘲弄外在的东西 testfile.js let proxyquire = require('proxyquire'); let OuterDepStub = {}; let testingFunc = proxyquire('myfile.js', {'mydep': OuterDepStub}); 然后在我的testing块内 let stubCallback = function() { console.log('Stub dubadub dub'); //note…i can use sinon.spy here instead }; beforeEach(()=>{ OuterDependency.PromiseFunction […]

是否有可能在我的Jesttesting套件中创build一个Express.js服务器?

我试图testing一个函数,使用axios从外部API获取数据。 为了让我的testing函数尽可能地接近真实的东西,我正在查询文件中的模拟数据。 Axios无法从本地文件返回数据,这是一项安全function。 所以我正在尝试的解决scheme是在我的testing套件中启动一个简单的服务器,在那里提供文件,然后运行我的testing。 我的testing套件现在看起来像这样: import React from 'react'; import {shallow} from 'enzyme'; import express from 'express'; import { getFeedId, getFeedData, reverseStop } from '../mocks/apiMock'; const app = express(); const port = 4000; app.use(express.static('../mocks/MockData.json')); app.listen(port, tests()); function tests () { it('returns the expected feed id for a given subway line', () => { expect(getFeedId('L')).toBe(2); }); […]

在Node.jsunit testing中重置MySQL自动增量作为拆卸步骤

我目前正在Node.js应用程序中运行DAL上的unit testing。 我希望能够使用虚拟数据库,在整个testing过程中通过非正式的设置/拆卸testing我的CRUD操作。 例如,通过执行插入来进行安装,并通过执行删除来进行拆卸。 我正在testing数据库,而不是模拟/假,因为我宁愿testing复杂的SQL对数据库的半工作副本。 我遇到的问题是在具有AUTO_INCREMENT -ing的列上,我不能指望在ID上有任何一致性。 通过重新设置AUTO_INCREMENT我可以避免这一点,但是我会做大量的复制粘贴代码,在我的所有模型中插入一个方法。 有什么办法我可以做一次,忘记它? 还是有一个更好的做法,我完全错过了?

我可以在加载之前将globals注入到Node模块中吗?

我正在编写一个应用程序的目的是为浏览器,我想为我的库代码编写自动化testing。 我想在Node之外的命令行环境中运行这些testing。 我还没有select一个testing框架,虽然我倾向于像摩卡或茉莉花这样的BDD框架。 我的代码依赖于Knockout的可观察属性。 不幸的是,Knockout库不仅包含可观察的属性,还包含将它们绑定到DOM的代码。 所以,如果我只是试图从Node节点require()敲出Knockout库,我会得到错误,因为库试图引用Node中未定义的window , navigator和documentvariables。 Knockout实际上并不使用任何这些variables – 它主要是对DOM绑定进行一些特征检测,这对我来说并不重要,但是因为它确实使用了它们,所以Node甚至不会加载文件。 所以这里是我的问题: 我可以注入虚拟variables加载模块? 我可以做些什么来说:“加载源文件之后,但在开始运行之前,让我在模块中设置一些variables,以便代码能够成功运行”? 我知道CoffeeScript已经修补了Node的模块加载器,所以除了.js之外,它还可以加载.coffee文件; 所以似乎也可能有一些方法来修补它来注入variables,如果我只知道如何。

摩卡testing,之前(每个)不运行?

我试图testing我的mongoose模型,如: Todo =需要“../../../app/todos/Todo” describe "Todo", -> describe "Basic CRUD", -> before: (done) -> console.log "In b4" Todo.remove {}, (err) -> console.log "removed" done err it "can be added to database", (done) -> todo = new Todo title: "New todo" todo.save (err) -> if !err Todo.find { title: "New todo" }, (err, docs) -> docs.length.should.equal 1 […]

我如何运行GruntJStesting?

我只是克隆了gruntjs仓库 。 我如何真正运行GruntJS的testing? (我不是说我想用GruntJS来运行我自己的testing,我的意思是我想为GruntJS本身运行testing。)

node.js:找不到模块“it-is”

我试图运行这个 node.jsunit testing,我得到这个错误: module.js:340 throw err; ^ Error: Cannot find module 'it-is' 从代码中可以看出,这个“它是”模块是一个unit testing模块 var it = require('it-is'); … it("Subject").equal(util.normalizeSubject("Re[2]:Subject")); 然而,谷歌这样的框架几乎是不可能的,因为谷歌只是删除了“它是”的一部分..我searchnode.jsunit testing无法find一个名为“它是”的东西.. 帮帮我!

如何得到断言打印成功消息?

这是我写的一个断言 assert.equal(0,0,"Test Passed); 我希望它会打印消息testing通过,但没有发生。 但是,如果断言失败,则消息与错误一起显示。 那么如果testing成功了,有什么方法可以打印这个消息呢?

以REPL方式从Visual Studio执行javascript(node.js)代码

我想在visual studio中运行一些javascript代码(单元和交互testing),并能够看到控制台输出。 是否有可能与VS做到这一点?

摩卡单位testing返回0作为未捕获的exception退出代码

我有我的当前应用程序的testing套件。 有时我会引入一个错误,并导致一个未被捕获的exception被抛出。 手动运行unit testing时,可以看到错误。 但是,当我将它与我们的CI系统集成时,该过程仍然返回0,就好像一切正​​常。 由于这个正面的退出码,我们无法检测到错误。 我究竟做错了什么?