- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Azure blob 容器,我正在使用以下代码访问它 -
var blobContainerClient = GetBlobContainer(containerName);
if (blobContainerClient != null)
{
// List all blobs in the container
await foreach (BlobItem blobItem in blobContainerClient.GetBlobsAsync())
{
queuedBlobsList.Add(new QueuedBlobs { BlobName = blobItem.Name, LastModified = blobItem.Properties.LastModified });
}
}
private BlobContainerClient GetBlobContainer(string containerName)
{
return gen2StorageClient != null
? gen2StorageClient.GetBlobContainerClient(containerName)
: gen1StorageClient.GetBlobContainerClient(containerName);
}
客户端在构造函数中初始化 -公共(public)类 BlobService :IBlobService{
私有(private)只读 BlobServiceClient gen1StorageClient,gen2StorageClient;
public BlobService(BlobServiceClient defaultClient, IAzureClientFactory<BlobServiceClient> clientFactory)
{
gen1StorageClient = defaultClient;
if (clientFactory != null)
{
gen2StorageClient = clientFactory.CreateClient("StorageConnectionString");
}
}
}
我设置 GetBlobsAsync 的单元测试是这样的 -但我想添加 BlobItems 列表来测试另一个循环。
private static Mock<BlobContainerClient> GetBlobContainerClientMockWithListOfBlobs()
{
var blobContainerClientMock = new Mock<BlobContainerClient>("UseDevelopmentStorage=true", EnvironmentConstants.ParallelUploadContainer);
var cancellationToken = new CancellationToken();
var blobs = new List<BlobItem>();
//AsyncPageable<BlobItem> blobItems = new AsyncPageable<BlobItem>(); -- Not allowing
blobContainerClientMock.Setup(x => x.GetBlobsAsync(BlobTraits.All, BlobStates.All, null, cancellationToken)).Returns(It.IsAny<AsyncPageable<BlobItem>>());
return blobContainerClientMock;
}
最佳答案
我提出这个问题是因为我也遇到了同样的问题。
基于此article
AsyncPageable<T>
andPageable<T>
are classes that represent collections of models returned by the service in pages.
方法 GetBlobsAsync 返回 AsyncPageable。
要创建 AsyncPageable,您首先需要创建 BlobItem 页面。
创建 Page<T>
例如,使用Page<T>.FromValues
方法,传递项目列表、延续标记和响应。
让我们开始创建项目列表:
var blobList = new BlobItem[]
{
BlobsModelFactory.BlobItem("Blob1"),
BlobsModelFactory.BlobItem("Blob2"),
BlobsModelFactory.BlobItem("Blob3")
};
注意:BlobItem 有一个内部构造函数,但我在这个 answer 中找到了有一个 BlobsModelFactory。
有了 Blob 列表后,就可以创建 Page<BlobItem>
了。 :
Page<BlobItem> page = Page<BlobItem>.FromValues(blobList, null, Mock.Of<Response>());
最后,创建 AsyncPageable<BlobItem>
AsyncPageable<BlobItem> pageableBlobList = AsyncPageable<BlobItem>.FromPages(new[] { page });
现在您可以使用它来模拟 GetBlobsAsync 方法:
blobContainerClientMock
.Setup(m => m.GetBlobsAsync(
It.IsAny<BlobTraits>(),
It.IsAny<BlobStates>(),
It.IsAny<string>(),
It.IsAny<CancellationToken>()))
.Returns(pageableBlobList);
我希望这可以帮助其他人解决这个问题。
安德烈
关于azure - 如何模拟 Azure blobContainerClient.GetBlobsAsync(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72518199/
我正在使用BlobContainerClient像这样: var blobs = _blobContainerClient.GetBlobsAsync(BlobTraits.Metadata, Blo
我正在使用BlobContainerClient像这样: var blobs = _blobContainerClient.GetBlobsAsync(BlobTraits.Metadata, Blo
这两篇文章看起来很有希望: How upload blob in Azure Blob Storage with specified ContentType with .NET v12 SDK? Up
我有一个 Azure blob 容器,我正在使用以下代码访问它 - var blobContainerClient = GetBlobContainer(containerName);
我有一个 Azure blob 容器,我正在使用以下代码访问它 - var blobContainerClient = GetBlobContainer(containerName);
我对 C# azure sdk 感到困惑。 我想要实现的目标。 将文件从我的计算机上传到 azure 中的文件夹。 例如 本地 MyFiles -- Folder1 -- file.t
我有许多 v3 AZ 函数,它们都工作正常,但当我们迁移到v4 隔离时,我无法再在本地运行它。我收到的错误是“Microsoft.Azure.WebJobs.Extensions.Timers.Sto
先决条件 WindowsAzure.Storage V 9.3.3 Azure.Storage.Blobs V 12.6.0 Datadog APM 监控 上下文: 这是一个已知问题,如果之前已经创建
在 Microsoft.Azure.Storage.Blob 库中,您可以使用 SAS URI 创建 Blob 上传客户端。 var cloudBlockBlob = new CloudBlockBl
我有许多 v3 AZ 函数,它们都工作正常,但当我们迁移到v4 隔离时,我无法再在本地运行它。我收到的错误是“Microsoft.Azure.WebJobs.Extensions.Timers.Sto
先决条件 WindowsAzure.Storage V 9.3.3 Azure.Storage.Blobs V 12.6.0 Datadog APM 监控 上下文: 这是一个已知问题,如果之前已经创建
在 Microsoft.Azure.Storage.Blob 库中,您可以使用 SAS URI 创建 Blob 上传客户端。 var cloudBlockBlob = new CloudBlockBl
我在尝试使用我拥有的凭据创建 Azure blobConatinerClient 时遇到错误。 凭证是instanceOf StorageSharedKeyCredential和端点是instance
我在尝试使用我拥有的凭据创建 Azure blobConatinerClient 时遇到错误。 凭证是instanceOf StorageSharedKeyCredential和端点是instance
我是一名优秀的程序员,十分优秀!