传递后使用Redis测试不会退出(使用jest)

时间:2018-05-17 09:02:13

标签: node.js jestjs node-redis

我为项目实现了基本缓存功能,并在测试期间遇到了问题。 我使用jest和redis-mock测试并且所有测试都通过了。 问题是当我导入导入redis文件的文件时。 测试文件不会退出。

示例:

index.test.js

import redis from 'redis'
import redis_mock from 'redis-mock'
jest.spyOn(redis, 'createClient').mockImplementation(red_mock.createClient)
import fileUsingRedis from './index'

describe('index', () => {
  it('should pass', () => expect(true).toBeTruthy())
}

index.js

import {set} from './redis'
export default function ...

redis.js

import redis from 'redis'
const client = redis.createClient()

export function set(key, value) {...}

'1通过'......'跑完所有匹配的测试套件''

但是它一直在等待,我假设因为redis.createClient()是异步或其他东西。看到它在导入时发生我不能解决它。 每次测试后我是否必须关闭redis-instance连接?

这里有什么解决方案/最佳实践?

1 个答案:

答案 0 :(得分:4)

所以是的,关闭实例做到了。

<强> index.test.js

import redis from './redis'
...
afterAll(() => redis.closeInstance())

<强> redis.js

export function closeInstance(callback) {
  client.quit(callback)
}