如何用jest编写模拟redis集群的单元测试用例

yrdbyhpb  于 2023-03-11  发布在  Jest
关注(0)|答案(1)|浏览(209)

你能帮我模拟一下红星团吗?

const Redis: any = require('ioredis');
const Promise: any = require('bluebird');

// Promise original enable for cancelation
Promise.config({ cancellation: true });

// Change to use bluebird Promises.
Redis.Promise = Promise;

const cluster: any = new Redis.Cluster([
  {
    port: '123',
    host: 'https://host'
  }
]);

async updateCache(Id, obj): Promise<any> {
  let consolidatedIndexObj = instanceToPlain(obj);

  return cluster
    .hset('TESTINDEX', ID, JSON.stringify(consolidatedIndexObj))
    .timeout(2000)
    .then((cache: any) => {

      return cache;
    })
    .catch((error: any) =>
    //
    );
};

我尝试使用这个包来模拟redis集群。https://www.npmjs.com/package/ioredis-mock

z9gpfhce

z9gpfhce1#

Testcontainers是一个支持测试的NodeJS库,提供了可以在Docker容器中运行的任何东西的轻量级、一次性示例。测试容器可以与Docker桌面、Rancher以及一些调整的Podman一起使用。
我建议你从一个简单的Redis镜像开始,只有在你认为你已经知道如何将测试容器编织到你的测试套件中之后,才考虑构建一个自定义的多容器docker镜像来表示一个Redis集群。为Redis集群构建一个docker镜像来进行单元测试是非常容易的,你不需要任何花哨的脚本来处理故障转移,卷挂载等。

相关问题