【发布时间】:2019-05-05 10:16:17
【问题描述】:
我正在与 Sinon 进行单元测试,以至少尝试让某些东西通过,但我不走运。我在网上找不到任何东西。
我有两个问题:
1) 我试图得到一个简单的响应,但它说spy 是false 失败。当我记录它时,它说它是true。
2) 我想在回调函数中测试模板是否等于'New Title'。我无法弄清楚如何将 req、res 和 next 传递到 router.get
router.js
const express = require('express'), router = express.Router();
router.get('/', (req, res, next) => {
var template = {
title: req.title,
item: req.item,
description: 'N/A'
};
res.render('index', template);
module.exports = router;
});
router.spec.js
const router = require('./router');
var res = {};
var req = {
title: 'New Title',
item: 'Blank Item'
};
var template = {
title: req.title,
item: req.item,
description: 'N/A'
};
it('1) should call the response', ()=>{
var spy = sinon.spy(route, 'get');
route.get('/', ()=>{});
console.log(spy.calledOnce); // equals true
assert(spy.calledOnce).toBeTruthy();
spy.restore();
});
it('2) should return a status 200', ()=>{
var stub = sinon.stub().yield([req, res, next]);
route.get('/', stub); // main problem
assert.equal(200, res.statusCode);
stub.restore();
});
我想访问路由处理程序,以便进行进一步的测试。在这种情况下,我可以在哪里以及如何实现路由处理?
【问题讨论】:
-
你应该阅读API Testing。这超出了单元测试的范围。您需要按照@deerawan 的建议编写适当的集成测试
标签: javascript unit-testing mocha.js sinon