我看到Stephen Cleary关于Startnew being dangerous以及continuewith is also dangerous的博客。我想在这里使用它来避免最后只是为了在异常情况下调用NSubstitute而尝试编写。我发现测试通过了它应该没有,然后注意到异常被抛出但它没有让它脱离测试信号nunit。
对于异步函数,ContinueWith是否与Task.Startnew类似?我注意到这个简化的等价物不会在Nunit 3中抛出内部异常。
@using (Ajax.BeginForm("AddNewsletterEmail", "NewsletterController", new AjaxOptions() { UpdateTargetId = "email", HttpMethod = "Post"}))
{
<div class="left-side">
<div class="widget widget-footer news-letter-signup">
<form class="subs-form">
<div class="email-field">
@Html.TextBoxFor(model => model.Email, new { placeholder = "Enter you email address" })
<button type="submit"><i class="fa fa-paper-plane-o"></i></button>
</div>
</form>
</div>
</div>
}
答案 0 :(得分:3)
ContinueWith
无法理解async
lambdas。除了传递任务调度程序之外,您还需要使用Unwrap
。
我想在这里使用它来避免在最后只是为了在异常的情况下调用NSubstitute来编写一个尝试。
我不明白这个要求。为什么这不起作用?
await Task.Delay(10);
await Task.Run(() => { throw new Exception(); });