草庐IT

模拟IC

全部标签

c# - 如何在单元测试中模拟抛出异常?

如何模拟在C#单元测试中抛出的异常?我希望能够100%覆盖我的代码,但我无法测试可能出现异常的代码。例如,我无法模拟可能发生的电源故障。例如:publicvoidMyMethod(){try{...}catch(OutOfMemoryExceptione){...}catch(RandomErrorFromDatabaseLayere){...}}我希望能够模拟此方法中应捕获的任何类型的异常。有没有图书馆可以帮助我解决这个问题?编辑1:对完成我对最小起订量的要求有什么帮助吗? 最佳答案 您需要创建一个模拟对象来代替可以抛出这些异常的

c# - 如何使用 MSTest 模拟对象?

我是MSTest(VisualStudio2010)的新手。有没有VS2010自带的集成mocking框架?或者是否有任何其他我可以使用的易于上手的好模拟框架? 最佳答案 VS2010没有附带模拟框架。但是您可以使用RhinoMocks(支持.NET2.0和3.5),或Moq(支持.NET3.5和.NET4)。两个框架都不错,但我更喜欢Moq,因为我觉得它更自然。它使用流畅的lambda语法,一旦你习惯了它,我就会觉得它非常干净。这两个框架都是开源的。如果您想要商业版,请选择Typemockisolator.这个框架几乎可以模拟任何

c# - 模拟异步任务

我在使用MicrosoftBCL的.NET4.0上使用Moq进行单元测试时遇到以下情况TaskmockTask=newTask(()=>newMyClass());uploadHelper.Setup().Returns(mockTask);Task.WaitAll(mockTask);我面临的问题是Task.WaitAll(mockTask)只是阻塞并且永远不会返回。我在这里做错了什么?编辑请注意,mockTask在我的上下文中是异步的。 最佳答案 您的任务尚未开始!只需使用:TaskmockTask=Task.FromResul

C# - 单元测试,模拟?

应该使用目标类的内置单元测试生成器(VS)还是我应该自己学习如何编写单元测试?这个“模拟”是什么东西?我一遍又一遍地听到它,但没有人关心给出一个好的解释。提前致谢。 最佳答案 您需要学习自己编写单元测试。从正确理解许多人在以下方面犯错误的术语开始,从右脚开始:单元测试:测试单个代码单元,非常小的原子测试。集成测试:测试集成在一起的多个代码单元,通过不同的层并确保它们正确使用彼此。这些应该在单元测试验证了各个单元独立工作之后完成。许多人错误地将这些称为单元测试。内置验证测试:通过部署和运行将以用户方式与其交互的测试来测试内置产品。也经

c# - 模拟 ASP.NET 身份验证 cookie

我维护一个使用ASP.NETMVC的网站FormsAuthentication.SetAuthCookie(userName,createPersistentCookie);让用户登录(他们最终得到一个名为.ASPXAUTH的cookie)。客户希望我添加一个HTML到PDF的功能,所以我包装了wkhtmltopdf库并调用它。这最终是一个看起来像这样的命令:wkhtmltopdfhttp://example.com/Foo/Edit/42Foo.pdf但是,这会导致生成登录屏幕的PDF,因为wkhtmltopdf用户代理被重定向,因为它没有正确的cookie。这很好,因为根据wkht

c# - 如何在 C# < 6 中模拟 C# 6 空条件

使用C#6.0我可以做到这一点varisEqual=x.Id==y.Id&&x.UpdatedAt==y.UpdatedAt&&x.Name==y.Name&&x.RulesUrl==y.RulesUrl&&x.OngoingChallenges?.Count==y.OngoingChallenges?.Count&&x.MembershipIds?.Count==y.MembershipIds?.Count;在C#我是说这部分&&x.OngoingChallenges?.Count==y.OngoingChallenges?.Count&&x.MembershipIds?.Count

c# - NSubstitute 模拟一个没有参数的 void 方法

我是NSubstitute的新手,我正在尝试使用2个out参数模拟一个void方法,我很确定我做错了。我有一个CustomerDataAccess类,它的方法具有以下签名:voidGetCustomerWithAddresses(intcustomerId,outListcustomers,outListaddresses);CustomerRepository调用其GetCustomer方法,然后调用CustomerDataAccess.GetCustomerWithAddressesDAL方法。DAL方法然后输出两个out参数,一个用于客户,一个用于地址。存储库方法然后使用Auto

c# - 如何以编程方式实例化或模拟窗口?

对于我的一些单元测试,我必须调用需要Window作为参数的方法。不幸的是我不能传递null,因为该方法使用窗口作为更新状态栏的引用,我在其中显示实际应用程序中实际加载的内容。所以我尝试在单元测试中调用构造函数:MainWindowwindow=newMainWindow();但这会导致MainWindow构造函数的InitializeComponent方法出现以下错误:System.Windows.Markup.XamlParseExceptionoccurredMessage='Providevalueon'System.Windows.Baml2006.TypeConverterM

c# - 我怎样才能用最小起订量模拟 Response.StatusCode?

我有以下方法:publicvoidSetHttpStatusCode(HttpStatusCodehttpStatusCode){Response.StatusCode=(int)httpStatusCode;}以及以下测试:[TestMethod]publicvoidSetHttpStatusCode_SetsCorrectStatusCode(){//Arrange//AnyurlwillsufficevarmockHttpContext=TestHelpers.MakeHttpContext("");mockHttpContext.SetupSet(x=>x.Response.S

C# WebApi 单元测试和模拟 Controller

我正在处理这个WebAPI项目,我需要为其创建单元测试。该项目的基础是使用VS2010创建的,然后添加了一个WebApi模块。Controller的工作有点妨碍测试/模拟。我正在使用xUnit和Moq,但绝对没有必要坚持使用这两个。应用程序使用特定的对象来处理数据库访问,所以我有controllerObject及其构造函数需要DataAccessObject我在模拟Controller/数据访问对时遇到问题。我尝试运行的第一个测试是GetAllFromDataBase,但我真的不知道如何去做。编辑:我按照CuongLe告诉我的去做了,现在一切都在进行中,我真的很感激。但我遇到了另一个问