【发布时间】:2020-08-29 06:45:27
【问题描述】:
我有一个测试有问题。它需要执行异步代码,但需要正确成功/失败。根据我的研究,构建异步测试实际上不会正确失败,所以我尝试了这样的方法:
[TestMethod]
public void VerifyAsynchronousSend()
{
Task.Run(() => this.asbMessagingClient.SendAsync(new MessageInfo
{
Message = $"{MessageBody} async",
AppId = AppId,
Filter = Filter
})).Wait();
}
消息确实写入了 ASB,并且确实成功了,但它在测试资源管理器中显示为 not run。有人可以帮我正确地构建这个吗?
这是它的执行代码:
public async Task SendAsync(MessageInfo messageInfo)
{
var asbMessage = ConstructMessage(messageInfo);
this.logger.WriteInfo($"ASB: Sending message async. {messageInfo} Message ID: {asbMessage.MessageId};");
await this.TopicClient.SendAsync(asbMessage);
}
【问题讨论】:
-
Based on my research, building an async test won't actually fail properly- 什么研究?
标签: c# .net unit-testing asynchronous async-await