Javascript 有没有办法模拟请求对象上的属性

Javascript 有没有办法模拟请求对象上的属性,javascript,mocking,jestjs,Javascript,Mocking,Jestjs,我使用swagger定义了一个Javascript restapi端点。在我的控制器中,我记录来自传入请求的IP地址 这是正常工作,但现在我试图添加Jest测试的覆盖率,每次我运行我的测试,我得到一个错误抛出 module.exports.execute = async function execute (req, res) { try { log.info("Start processing request from client IP="+req.connection

我使用swagger定义了一个Javascript restapi端点。在我的控制器中,我记录来自传入请求的IP地址

这是正常工作,但现在我试图添加Jest测试的覆盖率,每次我运行我的测试,我得到一个错误抛出

module.exports.execute = async function execute (req, res) {
    try {
        log.info("Start processing request from client IP="+req.connection.remoteAddress);
        ... do some stuff
        log.info("Finished processing request from client IP="+req.connection.remoteAddress);
    } catch(err) {
        log.error("Error caught in Address controller =>" + err.message);
        utils.writeJson(res, err.message, 500);
    }
};
当我执行测试时,我在controller=>无法读取未定义的属性“remoteAddress”中发现错误

当我注释掉调用req.connection.remoteAddress的行时,一切都很好,我得到了覆盖,但这两行没有

我猜问题在于req.connection.remoteAddress是一个属性而不是一个函数

是否有一种方法可以模拟此调用的响应以返回statis字符串,如1.1.1.1


感谢您的帮助。

在考虑了@Will Alexander第一条评论中的问题后,我添加了这条(第二行),现在一切都好了。谢谢你会的

let mockReq = _.set({},'swagger.params.entity.value', JSON.stringify({            fail: false}));
mockReq.connection = _.set({},'remoteAddress', '1.1.1.1');

您是否已经在模拟测试时通过的
req
res
对象?如果是这样,您只需要向
req
对象添加
connection.remoteAddress
属性我尝试了这个,但仍然是相同的错误
const mockReq=551;.set({},'swagger.params.entity.value',JSON.stringify({fail:false}),'connection.remoteAddress','192.168.1.1')很高兴我能帮忙:)