我有一段代码,利用getSignedUrl
onst [url] = await blob.getSignedUrl({ action: 'read', expires: Date.now() + 60 * 1000, contentType: mimetype })
不幸的是,firebase模拟器不能签名URL,我的解决办法是模拟blob.getSignedUrl
的返回值
import { File } from '@google-cloud/storage'
jest.mock('File', () => ({
...jest.requireActual('@google-cloud/storage'),
getSignedUrl: jest.fn().mockReturnValue({ url: 'http://' }),
}))
虽然这没有效果。我如何模拟getSignedUrl函数?
jest.mock
以模块名(或路径)作为参数
我猜你想做的是用一个间谍:
import { File } from '@google-cloud/storage'
const spy = jest.spyOn(File.prototype, 'getSignedUrl')
spy.mockReturnValue({ url: 'http://' })
// if you dont need to keep spy you can do it in one line :
// jest.spyOn(File.prototype, 'getSignedUrl').mockReturnValue({ url: 'http://' })