c# – NUnit可以期待超时吗?
发布时间:2020-12-15 07:55:29 所属栏目:百科 来源:网络整理
导读:我想测试一种我希望在特定情况下阻止的方法. 我尝试了TimeoutAttribute和ExpectedExceptionAttribute的组合: [Test][Timeout(50),ExpectedException(typeof(ThreadAbortException))]public void BlockingCallShouldBlock(){ this.SomeBlockingCall();} 不幸
我想测试一种我希望在特定情况下阻止的方法.
我尝试了TimeoutAttribute和ExpectedExceptionAttribute的组合: [Test] [Timeout(50),ExpectedException(typeof(ThreadAbortException))] public void BlockingCallShouldBlock() { this.SomeBlockingCall(); } 不幸的是,这不起作用,我读到的关于here的ThreadAbortException好像被NUnit本身抓住了. 有没有办法期待超时(使用NUnit)? 解决方法
对于这样的问题,我可能会使用
Task 和
Task.Wait(int) 或
Task.Wait(TimeSpan) .例如:
[Test] public void BlockingCallShouldBlock() { var task = Task.Run(() => SomeBlockingCall()); var completedInTime = task.Wait(50); // Also an overload available for TimeSpan Expect(completedInTime,Is.False); } 但是请注意,这将在后台线程上调用SomeBlockingCall,但对于大多数单元测试,这是一个非问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |