草庐IT

unit-testing

全部标签

c# - 哪些单元测试框架以及如何开始(针对 asp.net mvc)

我以前从未做过单元测试,但现在我愿意尝试一下。什么框架最适合初学者?优点和缺点在开始任何编码之前我应该​​阅读什么?书籍/文章/代码/博客是否有任何开源“示例项目”?我将使用asp.netmvc/C#来使用它。 最佳答案 如果您在VisualStudio中集成了单元测试(我认为它是Professional的一部分并且更好),请从它开始,因为它是集成的。不利之处在于,据我所知,在VisualStudio或TeamFoundationServer之外没有测试运行程序会取消其自动测试资格,但我不确定该信息的最新情况。其他选择是xUnit.

c# - WebApi 2 中的单元测试 IAuthenticationFilter

我正在尝试对我为WebApi2项目编写的基本身份验证过滤器进行单元测试,但我无法模拟OnAuthentication调用中所需的HttpAuthenticationContext对象。publicoverridevoidOnAuthentication(HttpAuthenticationContextcontext){base.OnAuthentication(context);varauthHeader=context.Request.Headers.Authorization;...therestofmycodehere}我试图为模拟设置的实现行是设置authHeader变量的行

c# - 如何对 HttpContext.SignInAsync() 进行单元测试?

SignInAsync()SourceCode我在单元测试中遇到了一些问题。DefaultHttpContext.RequestServices为null我试图创建AuthenticationService对象,但我不知道要传递什么参数我该怎么办?如何对HttpContext.SignInAsync()进行单元测试?待测方法publicasyncTaskLogin(LoginViewModelvm,[FromQuery]stringreturnUrl){if(ModelState.IsValid){varuser=awaitcontext.Users.FirstOrDefaultAsy

c# - 在 C# 中禁用单元测试的超时

我遇到了一个问题,我的测试在30分钟后超时。关于设置无限超时的任何想法?我试过Timeout(0),但它在30分钟后仍然会超时。我在VisualStudio2008中运行这些单元测试。 最佳答案 由于30分钟是VisualStudio测试框架中单元测试的默认超时,我猜测这就是您所指的。如果不是,请提供更多详细信息。您至少可以通过两种方式设置此超时:用属性修饰特定的TestMethods:[Timeout(TestTimeout.Infinite)];或使用测试->编辑测试设置->[您正在使用的设置]->测试超时。请注意,如果您使用(

c# - 使用最小起订量创建具有自动填充属性的模拟?

我有一个我想模拟的对象(比如HttpContext或其他对象)。有时,在某些单元测试中,我不得不模拟大量依赖项,并适本地设置它们的依赖项和值。下面有一些模拟httpcontext和另一个类的示例代码:publicstaticHttpContextBaseFakeHttpContext(){varcontext=newMock();varfiles=newMock();varrequest=newMock();varresponse=newMock();varsession=newMock();varserver=newMock();varuser=newMock();varidenti

c# - 流利的断言 : Assert one OR another value

使用流畅的断言,我想断言给定的字符串包含两个字符串之一:actual.Should().Contain("oneWay").Or().Should().Contain("anotherWay");//eitervalueshouldpasstheassertion.//forexample:"youmaydoitoneWay."shouldpass,but//"youmaydoitthisWay."shouldnotpass只有当两个值都不包含时,断言才会失败。这不起作用(甚至无法编译),因为没有Or()运算符。我现在是这样做的:boolisVariant1=actual.Contai

c# - 确定 Action 返回正确 View 的单元测试

您如何测试像这样的操作方法是否会返回正确的View,因为Viewname是一个空字符串?我应该费心测试这个吗?我不确定要进行多少单元测试,我认为您可以创建很多单元测试!publicActionResultIndex(){returnView();}[TestMethod]publicvoidDetermineIndexReturnsCorrectView(){HomeControllercontroller=newHomeController();ViewResultresult=controller.Index()asViewResult;//****result.ViewNamei

c# - 我如何对这个(正确地)抛出异常的异步方法进行单元测试?

我在接口(interface)中有以下方法..Task>SearchAsync(TUsearchOptions);效果很好。现在我正在尝试进行单元测试以测试何时出现问题-代码会抛出异常。在这种情况下,我已将我的方法设置为抛出HttpRequestException。我的单元测试没有说我抛出了那个异常..varresult=Should.Throw(async()=>awaitservice.SearchAsync(searchOptions));单元测试的错误信息是Shouldly.ChuckedAWobblyvarresult=ShouldthrowSystem.Net.Http.H

c# - 为什么或如何将 NUnit 方法与 ICollection<T> 一起使用

一些NUnit的断言方法被重载以使用ICollection但不是ICollection因此你不能使用它们。这附近有什么吗?哎呀,我是在做傻事吗?我不得不退回到使用Assert.AreEqual而不是专门的方法,它使我的测试变得丑陋。有什么建议吗?编辑:感谢您的回复。ThatNUnit的方法似乎很有趣,所以我稍后会研究它。Mark正确地提到了这一点,但是NUnitCollectionAsserts非常好。我最近在一些新测试中使用了它们,发现它们非常适合使用。 最佳答案 我不知道这是否是您要找的,但对于通用集合而不是使用:Assert.

c# - 使用最小起订量模拟 HttpContext.Current.Server.MapPath?

我正在对我的家庭Controller进行单元测试。在我添加保存图像的新功能之前,此测试运行良好。导致问题的方法如下所示。publicstaticvoidSaveStarCarCAPImage(intcapID){byte[]capBinary=Motorpoint2011Data.RetrieveCapImageData(capID);if(capBinary!=null){MemoryStreamioStream=newMemoryStream();ioStream=newMemoryStream(capBinary);//savethememorystreamasanimage//