gpt4 book ai didi

node.js - 单元测试快速路由调用 Controller 方法?

转载 作者:太空宇宙 更新时间:2023-11-03 22:36:03 25 4
gpt4 key购买 nike

我看到一些similar questions ,但我的设置略有不同,我无法找出测试它的好方法。

我正在尝试测试我的快速应用程序路由是否定向到正确的 Controller 方法。

例如 -

//server.js, base application

var express = require("express");
var app = express();
require("./routes.js")(app);
...

//routes.js
var menuController = require("./controllers/menu.js");

module.exports = function(expressApp) {
expressApp.get('/menu', menuController.getMenu);
};
...

//test file
var express = require('express')
, menuController = require("../../controllers/menu.js")
, chai = require('chai')
, should = chai.should()
, sinon = require('sinon')
, sinonChai = require("sinon-chai");
chai.use(sinonChai);

var app = express();
require("../../routes/routes.js")(app);

describe('routes.js', function(){

it('/menu should call menuController.getMenu route', function(){
var spy = sinon.spy(menuController, 'getMenu');
app.get('/menu', spy);

spy.should.have.been.called; //fails, never called
});

});

如何检查调用 app.get('/menu', ..) 时是否调用了来自 menuController 的回调?或者我应该以某种方式重组应用程序(我看到了很多其他配置路由的方法)?

最佳答案

我建议检查从 /menu 返回的响应代码,并检查响应本身是否等于或包含已知响应,而不是这样做。

关于node.js - 单元测试快速路由调用 Controller 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28990887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com