我们正在使用Rider IDE和MacOS开发。net 5万博体育手机版网址/core服务。
请:
1.添加支持在MacOS下运行JustMock(需要支持分析器,启用问题等),或者如果已经支持,请提供如何在每次测试中激活它的说明,例如使用NUnit。
2.添加与Rider的集成,这样所有的过程都会容易得多。
使用EntityFramework对一个简单类运行的单元测试永远不会完成,下面是代码:
公共类DbContext1:DbContext{公共DbContext1(字符串connectionString){}}
公共类程序{私人静态只读的SemaphoreSlim _lock =新SemaphoreSlim (1,1);公共异步任务运行(){等待_lock.WaitAsync ();试一试{等待InsertDbRow ();}最后{_lock.Release ();}}私人静态异步任务InsertDbRow(){等待RetryWrapperAsync (异步() => {使用DbContext1 dbContext =新DbContext1 (“con str”);等待dbContext.SaveChangesAsync ();});}公共静态异步任务RetryWrapperAsync(Func <任务>操作){为(int我=0;我<3.;我+ +){试一试{等待操作();打破;} catch(异常){等待的任务。延迟(One hundred.);}};}}
[TestClass]公共类ProgramTest{私人只读的DbContext1 mockContext1 = Mock.Create();[TestInitialize]公共无效设置(){Mock.Arrange(() =>新DbContext1 (“con str”) .Returns (mockContext1);} (TestMethod]公共异步任务TestMethod(){/ /安排程序程序=新项目();/ /行为等待program.Run ();// <——此时测试挂起}}
添加什么都不做的安排模拟上下文。SaveChanges修复挂起,但期望mock将在默认情况下处理这种情况,不需要显式安排。