我的视图模型有一个公共方法void StartBroadcastingAndDiscovery()
。这会触发两个私有异步方法Task StartBroadcasting()
和Task StartDiscovering()
. 这两个私有方法都是(无休止的)while循环,如下所示:
while(!ct.IsCancellationRequested)
{
var discovered = await this.networkService.Discover();
this.DiscoveredPeers.Add(discovered);
await Task.Delay(1000);
}
这个想法是用于发现的异步方法定期轮询网络服务。注入网络服务:
this.networkService = ServiceContainer.Resolve<INetworkService> ();
该模型的用户可以获得已发现对等点的列表。随着对等点从网络中出现或消失,该列表会随着时间而改变。在某些时候,用户调用void StopBroadcastingAndDiscovering().
为了测试我的视图模型,我创建了一个模型网络服务,它将“发现”三个不同的对等点。第一个请求返回第一个对等点,然后是第二个,然后是第三个,然后是第一个,依此类推。
我现在的问题是:我如何实际运行测试?我可以在这里测试什么?我想看到发现的对等点列表在 3 秒后包含三个项目,但我不想硬编码 3 秒延迟。