我想检查某些路由调用正确控制器使用Jest specific (mock or spy) 的情况。
它是单元测试特定的案例。有人可以帮助我如何检查它使用笑话。我不需要验证类型的期望(状态代码或 res 对象)我需要检查控制器是否已被调用。谢谢!
例如:
// todoController.js
function todoController (req, res) {
res.send('Hello i am todo controller')
}
// index.spec.js
const express = require('express');
const request = require('request-promise');
const todoController = require('./todoController');
jest.mock('./todoController');
const app = express();
app.get('/todo', todoController)
test('If certain routes are calling the correct controller , controller should to have been called times one.', async() => {
await request({url: 'http://127.0.0.1/todo'})
expect(todoController).toHaveBeenCalledTimes(1);
})
Run Code Online (Sandbox Code Playgroud) 我不知道为什么在服务器上收到[错误:多部分:未找到边界] 和bundle.js:37628 POST http:// localhost:8800 / exporttocsv 500(内部服务器错误)
<form action="/exporttocsv" method="POST" encType="multipart/form-data">
Run Code Online (Sandbox Code Playgroud)
发布正常,但axios无法通过。
请帮助我纠正错误
这是我的代码/-客户端
import axios from 'axios'
var formData = new FormData()
const config = { headers: { 'Content-Type': 'multipart/form-data' } };
export const ipmortToCSV = (file) => dispatch => {
formData.append('file',file)
console.log(formData.getAll('data'))
axios.post('/exporttocsv', {
"UploadCommand": formData
},config)
.then(function (response) {
console.log(response);
})
.catch(function (error) {
console.log(error);
});
Run Code Online (Sandbox Code Playgroud)
// - 服务器
const router = require('express').Router()
var csv = require('csv-express')
const controllers = require('../../controllers/exporttocsv') …Run Code Online (Sandbox Code Playgroud)