Mocha:express.Router 的测试实例方法
Mocha: Approach to Testing instance of express.Router
我一直在设计一个 javascript 控制器文件,我想测试我的控制器实例是否有 express 方法的实例 Router()
。
import {expect} from 'chai';
import {UF_Controller} from '../../controllers/uf.controller.js';
describe('UF Controller', UFControllerDescription);
function UFControllerDescription(){
it('1. Should be have a express router instance', spec1);
function spec1(){
expect(UF_Controller.router).itself.to.respondTo('get');
expect(UF_Controller.router).itself.to.respondTo('post');
expect(UF_Controller.router).itself.to.respondTo('put');
expect(UF_Controller.router).itself.to.respondTo('delete');
}
}
和我的控制器
import express from 'express';
import { uf } from '../models/uf.model';
class UFController{
constructor(){
this.router = express.Router();
this.router.get('/', this.getAll);
}
getAll(req, res, next){
res.json(uf.todayUF());
}
getUF(req, res, next){
}
insertUF(req, res, next){
}
replaceUF(req, res, next){
}
updateUF(req, res, next){
}
deleteUF(req, res, next){
}
}
export const UF_Controller = new UFController();
我的问题是:
这是检查快速路由器实例的有效方法???
无需鸭式 Express 路由器。
express.Router
不是构造函数,不会建立可以用 instanceof
检测到的正常原型链。相反,它 establishes prototype chain manually via hacky mixin technique.
可以用
测试
expect(Object.getPrototypeOf(UF_Controller.router)).to.equal(express.Router);
我一直在设计一个 javascript 控制器文件,我想测试我的控制器实例是否有 express 方法的实例 Router()
。
import {expect} from 'chai';
import {UF_Controller} from '../../controllers/uf.controller.js';
describe('UF Controller', UFControllerDescription);
function UFControllerDescription(){
it('1. Should be have a express router instance', spec1);
function spec1(){
expect(UF_Controller.router).itself.to.respondTo('get');
expect(UF_Controller.router).itself.to.respondTo('post');
expect(UF_Controller.router).itself.to.respondTo('put');
expect(UF_Controller.router).itself.to.respondTo('delete');
}
}
和我的控制器
import express from 'express';
import { uf } from '../models/uf.model';
class UFController{
constructor(){
this.router = express.Router();
this.router.get('/', this.getAll);
}
getAll(req, res, next){
res.json(uf.todayUF());
}
getUF(req, res, next){
}
insertUF(req, res, next){
}
replaceUF(req, res, next){
}
updateUF(req, res, next){
}
deleteUF(req, res, next){
}
}
export const UF_Controller = new UFController();
我的问题是: 这是检查快速路由器实例的有效方法???
无需鸭式 Express 路由器。
express.Router
不是构造函数,不会建立可以用 instanceof
检测到的正常原型链。相反,它 establishes prototype chain manually via hacky mixin technique.
可以用
测试expect(Object.getPrototypeOf(UF_Controller.router)).to.equal(express.Router);