Articles of stub

在testingnode.js应用程序时,什么是存根function的最佳设置?

我是Node.js的新手,并且一般来说还不熟悉JavaScript中的框架/方法。 到目前为止,我正在考虑发誓 。 具体来说,我想能够存根/模拟我的数据源。 我正在考虑两种情况: 将整个模块取出 无论出于何种原因,对整个模块进行存根操作都不起作用。 任何build议或例子,你发现最干净和最简单的方法?

节点expressiones6中文正文中间件不工作

我正在写我的快递路由器的摩卡unit testing。 然而,我发现,尽pipe我试图存储中间件,但它仍然执行中间件代码。 这里是我的路由器和testing,有谁能弄清楚? 路由器: import { aMiddleware, bMiddleware, cMiddleware } from '../middleware.js'; router.post('/url', aMiddleware, bMiddleware, cMiddleware, function(req, res) { … } 中间件: AuthMiddleware.aMiddleware = async (req, res, next) => { console.log('in real middleware'); next(); } testing: var authMiddleware = require('../../middleware/auth.js'); describe('Test', async () => { before(function (done) { _STUB_MIDDLEWARE_A = sinon.stub(authMiddleware, 'aMiddleware'); _STUB_MIDDLEWARE_A.callsArg(2); } […]

如何在ES6中用sinon存储静态方法?

var MyClassStub = sinon.createStubInstance(MyClass); MyClassStub不包含静态方法。 如何解决这个问题?

模拟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");

如何存根要求()/期望调用模块的“根”function?

考虑下面的茉莉花规格: describe("something.act()", function() { it("calls some function of my module", function() { var mod = require('my_module'); spyOn(mod, "someFunction"); something.act(); expect(mod.someFunction).toHaveBeenCalled(); }); }); 这工作得很好。 像这样的东西使它变成绿色: something.act = function() { require('my_module').someFunction(); }; 现在看看这个: describe("something.act()", function() { it("calls the 'root' function of my module", function() { var mod = require('my_module'); spyOn(mod); // jasmine needs a property name // […]

如何在node.js中存储process.env?

我想用“bar”存根process.env.FOO。 var sinon = require('sinon'); var stub = sinon.stub(process.env, 'FOO', 'bar'); 我很困惑。 我读了文件,但还是不明白。 sinonjs文档 sinonjs是一个例子,不sinonjs是好的。