How to create an Azure.AsyncPageable for mocking?

Cla*_*pel 9 c# paging asynchronous mocking azure

I would like to mock a C# method that returns an Azure.AsyncPageable.

这个类只有受保护的构造函数,所以我不能直接实例化它。有没有办法从其他集合(例如IAsyncEnumerable或只是List )创建此类的实例?

Pet*_*ons 17

您可以创建Page对象using Page<T>.FromValues。然后,创建一个AsyncPageable<T>使用AsyncPageable<T>.FromPages.

例子:

        var page = Page<TableEntity>.FromValues(new List<TableEntity>
        {
            new TableEntity("1a", "2a"),
            new TableEntity("1", "2b")
        }, continuationToken: null, new Mock<Response>().Object);
        var pages = AsyncPageable<TableEntity>.FromPages(new[] { page });
Run Code Online (Sandbox Code Playgroud)