使用Jest在构造函数中模拟Redis获取/设置

时间:2019-06-21 00:55:55

标签: node.js unit-testing redis jestjs

我正在使用jest编写单元测试,并且必须在构造函数中模拟Redis Get / Set,但是我对uti.promisify的传递参数有疑问。

尝试模拟redis-mock,作为RedisClient导入,并与Get / Set一起放入构造函数。

在这里测试

import RedisClient from 'redis-mock';
import { promisify } from 'util';

it(should call testService class constructor', () => {

   const testServiceProxy = new testServiceProxy({ RedisClient });

 expect(testServiceProxy._redis).toBe(RedisClient);
 expect(testServiceProxy._redisGetAsync).toBe(testServiceProxy._redis.get).bind(testServiceProxy._redis);
 expect(testServiceProxy._redisGetAsync).toBe(testServiceProxy._redis.set).bind(testServiceProxy._redis);
});

施工工人

constructor({ RedisClient }) {

        this._redis = RedisClient;
        this._redisGetAsync = promisify(this._redis.get).bind(this._redis);
        this._redisSetAsync = promisify(this._redis.set).bind(this._redis);
    }

运行jest TestService.test.js

之后

工作构造函数中的错误消息 “原始”参数必须为函数类型

0 个答案:

没有答案