当前位置: 首页 > 编程语言 > C#

MSTEST-异步TestInitialize保证测试失败分享

时间:2023-04-11 02:52:07 C#

发生。这是以任何方式执行异步TestInitialize的正确方法吗?私有整数val=0;[TestInitialize]publicasyncTaskTestMehod1(){varresult=awaitLongRunningMethod();值=10;}[TestMethod]publicvoidTestMehod2(){Assert.AreEqual(10,val);}有任何想法吗?可能TestInitialize的最佳方法是让TestInitialize启动异步操作,如下所示:[TestClass]publicclassUnitTestAsync{privateTaskval=null;[TestInitialize]publicvoidTestInitializeMethod(){val=TestInitializeMethodAsync();}privateasyncTaskTestInitializeMethodAsync({returnawaitLongRunningMethod();}privateasyncTaskLongRunningMethod(){awaitTask.Delay(20);return10;}[TestMethod]publicasyncTaskTestMehod2(){Assert.AreEqual(10,awaitval);您要做的是与.Result或.Wait()同步阻止TestInitialize装饰方法。你可以这样做:privateintval=0;[TestInitialize]publicvoidTestMehod1(){Taskresult=awaitLongRunningMethod();结果.等待();值=10;}[TestMethod]publicvoidTestMehod2(){Assert.AreEqual(10,val);}只是为各种初始化调用创建一个任务数组(每次返回一个任务),然后使用Task.WaitAll()内容,如果对你有用并且需要了解更多C#学习教程,希望你付出更多关注—[ClassInitialize()]publicstaticvoidInitialize(TestContextcontext){Listtasks=newList();tasks.Add(InitializeMethod1());tasks.Add(InitializeMethod2());Task.WaitAll(tasks.ToArray());}publicstaticasyncTaskInitializeMethod1(){}publicstaticasyncTaskInitializeMethod2(){}如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: