Tag: 嘲笑

模拟fs.readdir进行testing

我试图嘲笑函数fs.readdir为我的testing。 起初我试过使用sinon,因为这是一个非常好的框架,但是没有奏效。 stub(fs, 'readdir').yieldsTo('callback', { error: null, files: ['index.md', 'page1.md', 'page2.md'] }); 我的第二个尝试是用自我replace函数来模拟函数。 但它也不起作用。 beforeEach(function () { original = fs.readdir; fs.readdir = function (path, callback) { callback(null, ['/content/index.md', '/content/page1.md', '/content/page2.md']); }; }); afterEach(function () { fs.readdir = original; }); 有谁可以告诉我为什么两个都不行? 谢谢! 更新 – 这也不起作用: sandbox.stub(fs, 'readdir', function (path, callback) { callback(null, ['index.md', 'page1.md', 'page2.md']); }); […]

存根/模拟process.platform sinon

我正在使用process.platform并希望存根string值来伪造不同的操作系统。 (这个对象是生成在我的范围之外,我需要testing它可以采取不同的值) 是否有可能残留/伪造这个值? 我已经尝试了以下没有任何运气: stub = sinon.stub(process, "platform").returns("something") 我得到错误TypeError: Attempted to wrap string property platform as function 同样的事情发生,如果我尝试使用这样的模拟: mock = sinon.mock(process); mock.expects("platform").returns("something");

在单独的文件中testingMongoose模型会导致问题(使用Mockgoose&Lab)

每当一个Mongoose模型在加载之后试图加载,就会抛出一个错误,例如: 错误:uncaughtException:编译后无法覆盖Account模型。 date = Fri Feb 26 2016 10:13:40 GMT-0700(MST),pid = 19231,uid = 502,gid = 20,cwd = / Users / me / PhpstormProjects / project,execPath = / usr / local / Cellar / node / 0.12.4 / bin / node,version = v5.2.0,argv = [/ usr / local / Cellar / node / 0.12.4 / bin […]

模拟node.js模块

可以说我有这种情况(架构) layer1 -> layer2 -> layer3 层只是正常的node.js模块(有一些导出的function) Layer1需要layer2并调用其function,而layer2需要layer3并调用其function。 我想testinglayer1中的函数,但也模拟layer3(我在layer1中的函数调用传播到layer3,这个我想模拟)。 做这个的最好方式是什么? 我已经看过这个模块: https : //github.com/thlorenz/proxyquire,但我不认为它支持嘲笑当事情是深入2级或更多级别,如我的例子。 感谢您的任何build议!

有没有一个模块轻松地模拟req / res对象的unit testing连接样式处理程序?

我在node.js中编写了一个应用程序,其中包含一些连接样式端点处理程序(函数(req,resp)),并希望针对它们编写一些unit testing,而无需运行完整的应用程序。 我知道我可以“简单地”推动任何我手动写入的设备,但是我想知道是否有任何库可以帮助我更快地生成这些设备。 编辑:进一步解释我想要什么,我想在我的unit testing只执行我的处理程序(而不是我的应用程序),为此,我需要一个假的需求和水库。 那些是我想嘲笑的两件东西。 我目前正在使用摩卡作为testing运行器和核心断言模块。

节点jsunit testing:嘲笑需要依赖

我正在为以下设置编写unit testing的问题作为jira.js文件(在node.js模块中): var rest = require('restler'); // https://www.npmjs.com/package/restler module.exports = function (conf) { var exported = {}; exported.getIssue = function (issueId, done) { … rest.get(uri).on('complete', function(data, response) { … }; return exported; }; 现在,我想为我的getIssue函数编写unit testing。 'restler'是一个REST客户端,我通过REST客户端调用JIRA API来获取JIRA问题。 所以为了能够testingcreateIssue(..),我希望能够在我的Jasmineunit testing中嘲笑'rest'var。 我怎样才能嘲笑这种方法? 请给我一些指示,以便我可以继续。 我曾尝试使用rewire,但我失败了。 这是我迄今为止不起作用(即getIssue方法原来是未定义的): var rewire = require("rewire"); var EventEmitter = require('events').EventEmitter; var emitter = new […]

testingNode.js,模拟并testing一个需要的模块?

我正在努力围绕我的节点模块编写高质量的testing。 问题是需求模块系统。 我希望能够检查某个需要的模块是否有方法或其状态已经改变。 似乎有两个相对较小的库可以在这里使用: 节点轻轻地和嘲弄 。 然而,由于他们的“低调”,这使得我认为,任何人都不会对此进行testing,或者还有另外一种我不知道的方式。 嘲笑和testing需要的模块的最好方法是什么?

如何在node.js中创build一个简单的套接字?

我试图创build一个虚拟套接字用于我的一些testing var net = require("net"); var s = new net.Socket(); s.on("data", function(data) { console.log("data received:", data); }); s.write("hello!"); 得到这个错误 错误:此套接字已closures。 我也试着创build套接字 var s = new net.Socket({allowHalfOpen: true}); 我究竟做错了什么? 作为参考,完整的testing看起来像这样 it("should say hello on connect", function(done) { var socket = new net.Socket(); var client = Client.createClient({socket: socket}); socket.on("data", function(data){ assert.equal("hello", data); done(); }); client.connect(); // writes […]

在NodeJs中使用摩卡嘲笑

我如何使用NodeJ来嘲笑Mocha中的客户端和服务器。 具体来说,我有以下代码: app.post ('path name', function (req, res) { // Some Action res.send(response); }); 我想模拟req , res参数和testingres (状态,标题,消息)。

在Node.js中模拟模块进行unit testing

我想unit testingnode.js模块中的一些function。 我认为嘲笑第三个模块会有帮助。 特别要避免碰到数据库 # models/account.coffee register = (email, password)-> sha_sum.update(password) pw = sha_sum.digest('hex') user = email: email password: sha_sum.digest('hex') users_db.save user, (err, doc)-> register_callback(err) account_module = register: register module.exports = account_module 这是我想testing的模块 # routes/auth.coffee account = require '../models/account' exports.auth = post_signup: (req, res)-> email = req.body.email password = req.body.password if email and password account.register(email, […]