- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想对一个方法进行单元测试,该方法调用返回 IAsyncEnumerable<T>
的服务的另一个方法.我创建了一个模拟服务 Mock<MyService>
我想设置这个模拟,但我不知道该怎么做。是否可以 ?是否有其他单元测试方法调用重新调整 IAsyncEnumerable
的方法
public async Task<List<String>> MyMethodIWantToTest()
{
var results = new List<string>();
await foreach(var item in _myService.CallSomethingReturningAsyncStream())
{
results.Add(item);
}
return results;
}
最佳答案
我建议使用 System.Linq.Async
中的 ToAsyncEnumerable
,正如 Jeroen 所建议的那样。看起来你正在使用最小起订量,所以这看起来像:
async Task MyTest()
{
var mock = new Mock<MyService>();
var mockData = new[] { "first", "second" };
mock.Setup(x => x.CallSomethingReturningAsyncStream()).Returns(mockData.ToAsyncEnumerable());
var sut = new SystemUnderTest(mock.Object);
var result = await sut.MyMethodIWantToTest();
// TODO: verify `result`
}
关于c# - 您如何模拟 IAsyncEnumerable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59071994/
我有以下界面: public interface IValidationSystem { IAsyncEnumerable ValidateAsync(T obj); } 我正在尝试以这种方式
我想知道是否有办法创建 IAsyncEnumerable或 IAsyncEnumerator通过 Source 对象,而不是像 TaskCompletionSource允许一个人为任务做。特别是Tas
正如标题所说,我必须执行以下功能: public async IAsyncEnumerable GetByPipeline(int pipelineId, [EnumeratorCancell
C# 8 添加了对异步迭代器 block 的支持,因此您可以等待并返回 IAsyncEnumarator 而不是 IEnumerable: public async IAsyncEnumerable
我正在尝试使用基于 IAsyncEnumerable 的 API 包装基于事件的异步订阅 API。 .基本上沿着以下路线: async IAsyncEnumerable ReadAll() {
我们有这样的代码: var intList = new List{1,2,3}; var asyncEnumerables = intList.Select(Foo); private async I
我有两种方法连接到 Foo 的两个不同来源s 返回两个 IAsyncEnumerable .我需要获取所有 Foo s 来自两个来源,然后才能处理它们。 问题 :我想同时(异步)查询两个源,即。不等S
我想知道是否有一种方法可以编写一个函数来“传递”一个 IAsyncEnumerable ......也就是说,该函数将调用另一个 IAsyncEnumerable 函数并产生所有结果而无需编写 for
我正在构建一个客户端,用于持续使用数据源中的新记录。集成是基于拉取的,我的客户定期查询数据源以获取新记录。我使用 IAsyncEnumerable 作为这个连续的新记录流的返回类型。以下是该方法的要点
我有一个这样写的界面: public interface IItemRetriever { public IAsyncEnumerable GetItemsAsync(); } 我想编写一个不
这个问题的答案可能是不可能,但问题是:假设您有一个 C# 方法来使用 TextReader 中的行返回 IAsyncEnumerable .你如何确保什么时候DisposeAsync在 IAsyncE
这个问题的答案可能是不可能,但问题是:假设您有一个 C# 方法来使用 TextReader 中的行返回 IAsyncEnumerable .你如何确保什么时候DisposeAsync在 IAsyncE
我正在使用 EF Core 3.1 和 Postgresql 对数据库运行一个查询,该查询有时会根据请求的参数返回较大的结果集。我使用 Async Enumerable 来流式传输结果,有时可能需要一
我想对一个方法进行单元测试,该方法调用返回 IAsyncEnumerable 的服务的另一个方法.我创建了一个模拟服务 Mock我想设置这个模拟,但我不知道该怎么做。是否可以 ?是否有其他单元测试方法
我有一个 IAsyncEnumerable,它返回本质上是 Key/IEnumerable 的序列。对。我有代码使用这个和其他类似的枚举,假设它将接收一个唯一的键集合。但是我的一个数据源不遵守此约束。
这个问题在这里已经有了答案: How to implement an efficient WhenEach that streams an IAsyncEnumerable of task resu
我有一种情况需要从多个 IAsyncEnumerable 源接收数据。为了提高性能,它应该以并行方式执行。 我已经使用 AsyncAwaitBestPractices 编写了这样的代码来实现这个目标,
我有一个简单的场景,我有一个具有以下方法的类: public async IAsyncEnumerable GetEntities(IQueryOptions options){ if(!vali
我正在尝试检索使用 C# 8.0 中新的 AsyncEnumerables 分页的数据。回到同步 IEnumerable 世界,代码看起来像这样: private IEnumerable Exampl
运行 IAsyncEnumerable 的枚举两次不可能? 一次CountAsync已运行,await foreach不会枚举任何项目。为什么?AsyncEnumerator 上似乎没有重置方法. v
我是一名优秀的程序员,十分优秀!