没有给出对应于所需的形式参数"取消"的参数

  • 本文关键字:参数 取消 于所需 c# xunit
  • 更新时间 :
  • 英文 :


我有这个接口,我正在创建XUnit测试。

Task PostMessage(CancellationToken cancellation);

这是我的XUnit代码

[Fact]
public async Task WhenAValidMessagePosted_ThenReturnStatus20()
{
// Arrange (Seed)         
// Act
var result = await _service.PostMessage();
// Assert
}

我在PostMessage()中有编译错误。如何在Xuit中为该方法提供CancellationToken?

如果您只需要一个占位符CancellationToken,请传入CancellationToken.None:

var result = await _service.PostMessage(CancellationToken.None);

然而,根据我的经验,您不想冒使整个测试套件死锁的风险,所以我通常更喜欢传递一个真正的取消令牌,该令牌将在几秒钟后自动取消。您可以使用CancellationTokenSource:来完成此操作

CancellationTokenSource source = new CancellationTokenSource();
CancellationToken token = source.Token;
source.CancelAfter(TimeSpan.FromSeconds(5));
var result = await _service.PostMessage(token);

最新更新