java xunit_如何正确编写异步XUnit测试?

我正在使用异步xUnit测试,我注意到不一致的传递行为:

public async Task FetchData()

{

//Arrange

var result = await arrangedService.FetchDataAsync().ConfigureAwait(false);

//Assert

}

我已经完成了此测试执行的调用堆栈,并且已经验证我的所有库代码在每个任务之后都在调用 .ConfigureAwait(false) . 但是,尽管如此,此测试和其他测试在执行 Run All 时会间歇性地失败,但是当我在调试器上完成时,会通过断言和手动检查 . 很明显,我没有正确地做某事 . 我已经尝试在测试中删除对 ConfigureAwait(false) 的调用,以防有特殊的xUnit同步上下文,但它没有改变任何东西 . 以一致的方式测试异步代码的最佳方法是什么?

EDIT 好的,这是我尝试创建一个运行的代码的超简化示例,以提供正在发生的事情的示例:

using Graph = Microsoft.Azure.ActiveDirectory.GraphClient;

public async Task FetchData()

{

var adUsers = baseUsers //IEnumerable

.Cast()

.ToList();

var nextPageUsers = Enumerable

.Range(GoodIdMin, GoodIdMax)

.Select(number => new Graph.U

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值