我正在使用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
工作构造函数中的错误消息 :“原始”参数必须为函数类型