gpt4 book ai didi

javascript - 如何在 Node.js 中模拟 elasticsearch 实例?

转载 作者:数据小太阳 更新时间:2023-10-29 04:36:09 25 4
gpt4 key购买 nike

我正在使用 elasticsearch 并想为以下代码编写单元测试:

import * as elasticsearch from "elasticsearch";
import config from "../config";

const client = new elasticsearch.Client({
host: config.elasticsearch.host,
log: "trace"
});

export function index(data) {
return new Promise((resolve, reject) => {
client.create({
index: "myindex",
type: "mytype",
id: booking.urn,
body: data
}).then(resolve, reject);
});
}

我熟悉 mocha 和 sinon,但是我不知道在这种情况下使用 stub\mock client.create 的好的模式。

任何人都可以建议我可以使用的方法吗?

最佳答案

一个可能的选择是使用 proxyquire + sinon 组合

Sinon 将伪造 Client:

const FakeClient = sinon.stub();
FakeClient.prototype.create = sinon.stub().returns("your data");
var fakeClient = new FakeClient();
console.log(fakeClient.create()); // -> "your data"

这样的假客户端可以通过proxyquire注入(inject)被测试模块:

import proxyquire from 'proxyquire';
const index = proxyquire('./your/index/module', {
'elasticsearch': { Client: FakeClient }
});

关于javascript - 如何在 Node.js 中模拟 elasticsearch 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42135596/

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