簡體   English   中英

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檢測到的常規原型鏈。 相反,它通過hacky mixin技術手動建立原型鏈

可以用

expect(Object.getPrototypeOf(UF_Controller.router)).to.equal(express.Router);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM