Javascript 如何在jest中模拟listBlobsByHierarchy方法?
我正在为一个函数编写单元测试,该函数将遍历存储容器中的blob。我目前在使用jest和jest mock extended模拟listBlobsByHierarchy方法时遇到问题。有没有关于如何做到这一点的代码示例?我的实现尚未完成,但我希望的行为是模拟listBlobsByHierarchy的实现以返回预期的BlobItem。我试图返回模拟的ContainerListBlobHierarchySegmentResponse,但我不确定如何将预期的blobItem附加到此响应,也不确定如何正确模拟该响应 这是我到目前为止所拥有的 我正在测试的方法:Javascript 如何在jest中模拟listBlobsByHierarchy方法?,javascript,typescript,unit-testing,jestjs,azure-storage-blobs,Javascript,Typescript,Unit Testing,Jestjs,Azure Storage Blobs,我正在为一个函数编写单元测试,该函数将遍历存储容器中的blob。我目前在使用jest和jest mock extended模拟listBlobsByHierarchy方法时遇到问题。有没有关于如何做到这一点的代码示例?我的实现尚未完成,但我希望的行为是模拟listBlobsByHierarchy的实现以返回预期的BlobItem。我试图返回模拟的ContainerListBlobHierarchySegmentResponse,但我不确定如何将预期的blobItem附加到此响应,也不确定如何正确
import { AzureFunction, Context, HttpRequest } from "@azure/functions";
import { ContainerListBlobsOptions } from "@azure/storage-blob";
import { getStorageContainerClient } from "../blobStorage/BlobStorage";
import { ImageInfo } from "../common/types";
import { handleError } from "../cosmos/CosmosContext";
const httpTrigger: AzureFunction = async function (context: Context, req: HttpRequest): Promise<void>
{
try
{
const containerClient = await getStorageContainerClient();
if(req.method === "GET")
{
const imageinfo: ImageInfo[] = [];
const containerListBlobsOptions: ContainerListBlobsOptions =
{
includeDeleted: true,
includeMetadata: true
};
for await (const item of containerClient.listBlobsByHierarchy("/", containerListBlobsOptions))
{
if (item.kind === "prefix")
{
context.log("Prefix type:");
context.log(item.name);
}
else
{
context.log(item.name);
context.log(item.deleted);
context.log(item.properties);
}
}
// Get a block blob client
// const blockBlobClient = containerClient.getBlockBlobClient(tenantBlobName);
// const properties = await blockBlobClient.getProperties();
context.res = { status: 200 };
// context.res = { status: 200, body: JSON.stringify(properties)};
return;
}
}
catch(err)
{
handleError(context, err);
}
};
export default httpTrigger;
正在给出以下错误:
“()=>ContainerListBlobHierarchySegmentResponse”类型的参数不能分配给“never”类型的参数。
我试过:
// Gives the same error as above
listBlobsByHierarchySpy.mockResolvedValue(async() => listBlobsByHierarchyResponse);
// Says that it is missing a bunch of properties which make it hard to mock
listBlobsByHierarchySpy.mockImplementation(async() => listBlobsByHierarchyResponse);
任何帮助都将不胜感激
listBlobsByHierarchySpy.mockResolvedValue(() => listBlobsByHierarchyResponse);
// Gives the same error as above
listBlobsByHierarchySpy.mockResolvedValue(async() => listBlobsByHierarchyResponse);
// Says that it is missing a bunch of properties which make it hard to mock
listBlobsByHierarchySpy.mockImplementation(async() => listBlobsByHierarchyResponse);