gpt4 book ai didi

node.js - Node js中的单元测试/模拟谷歌数据存储

转载 作者:搜寻专家 更新时间:2023-11-01 00:20:52 26 4
gpt4 key购买 nike

const Datastore = require('@google-cloud/datastore');
const datastore = Datastore();

function listTasks(res) {
const query = datastore.createQuery('Test');
datastore.runQuery(query)
.then((results) => {
const tasks = results[0];
tasks.forEach((task) => {
const taskKey = task[datastore.KEY];
console.log(taskKey.id, task);
});
res.send(tasks);
})
.catch((err) => {
console.error('ERROR:', err);
});
}

我想对上面的代码进行单元测试,但我不知道如何模拟/ stub 谷歌云数据存储对象/方法。例如,我想模拟/ stub datastore.createQuery('Test'),但不知道怎么做。

最佳答案

您无能为力。要么自己模拟整个数据存储,使用本地模拟器,要么只模拟每个测试用例所需的方法。

第一种方法可能费力且复杂,但可以保证最佳的响应时间和测试速度。

第二种方法也可以,但在我的实践中,这种方法并不比项目中的真实数据存储快。我的意思是,我机器中的本地仿真器响应时间大约为 30 毫秒 - 400 毫秒,这几乎与使用远程数据存储实例相同。不知道为什么,也许我做错了什么。你至少可以试试。

第三种方法,介于前两种方法之间,但您将开始测试实现而不是行为,这样的测试变得毫无用处。但是,这只是我对这种方法的看法。

还有一种方法,第四种就是分解这种方法,所以他们没有数据库通信代码,只有算法部分。测试这样的代码,而不是调用数据库方法的代码。

关于node.js - Node js中的单元测试/模拟谷歌数据存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47089099/

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