我有这个接口,我正在创建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);