Redis 测试在通过后不退出(使用玩笑)
Redis tests don't exit after passing (using jest)
我为一个项目实现了基本的缓存功能,运行在测试过程中遇到了问题。
我使用 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个通过'...'Ran all test suites matching ...'
但它一直在等待,我想是因为 redis.createClient() 是异步的或其他的。看到它在导入时发生,我不能只解决它。
我是否必须在每次测试后关闭 redis-instance 连接?
这里的solution/best-practice是什么?
是的,关闭实例就成功了。
index.test.js
import redis from './redis'
...
afterAll(() => redis.closeInstance())
redis.js
export function closeInstance(callback) {
client.quit(callback)
}
我为一个项目实现了基本的缓存功能,运行在测试过程中遇到了问题。 我使用 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个通过'...'Ran all test suites matching ...'
但它一直在等待,我想是因为 redis.createClient() 是异步的或其他的。看到它在导入时发生,我不能只解决它。 我是否必须在每次测试后关闭 redis-instance 连接?
这里的solution/best-practice是什么?
是的,关闭实例就成功了。
index.test.js
import redis from './redis'
...
afterAll(() => redis.closeInstance())
redis.js
export function closeInstance(callback) {
client.quit(callback)
}