gpt4 book ai didi

javascript - 从另一个函数中 stub 类调用

转载 作者:行者123 更新时间:2023-12-03 00:43:30 29 4
gpt4 key购买 nike

我有两个相互交互的文件controller.js和entity.js。我正在测试controller.js,它创建一个entity.js(类)的实例并使用它的函数之一。如何 stub /模拟/监视该方法的调用和返回?

Controller .js

const controller= async (req, res) => {

try {
...

const entity = new Entity({
...
});

const validation = await entity.validate();

...
return res.send()
}
} catch (error) {
return res.send(error)
}
};

实体.js

class Entity{
constructor() {
...
}

...

async validate() {
...
return response;
}
}

知道如何使用 supertest、sinon 和 chai 测试controller.js吗?

最佳答案

Sinon 很乐意对该函数进行 stub 处理。因为它是一个类方法,所以您只需要确保在原型(prototype)上 stub 该函数即可:

const controller = async (req, res) => {
const entity = new Entity();
const validation = await entity.validate();
console.log(validation)
};

class Entity{
constructor() {}
async validate() {
return "real function";
}
}
// stub it
let stub = sinon.stub(Entity.prototype, 'validate')
stub.returns('stubbed function')

controller()
<script src="https://cdnjs.cloudflare.com/ajax/libs/sinon.js/7.1.1/sinon.min.js"></script>

关于javascript - 从另一个函数中 stub 类调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53341789/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com