jjzjj

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告诉我的去做了,现在一切都在进行中,我真的很感激。但我遇到了另一个问

c# - 使用 Moq 和 TDD,从哪里开始?

我有一个服务器应用程序,我想知道如果我想开始实现TDD和使用Moq,我应该从哪里开始。关于这个主题,我可以阅读哪些不太“面向网络”的好书?我对此事有疑问,例如:我应该模拟我想要测试的每个对象,还是只模拟那些我无法实现的对象,比如文本编写器?我的服务器需要大量设置才能真正执行我想测试的任何事情,我是否应该将其塞入[TestInitialize]函数?如果我想测试更深层次的功能,我应该如何链接我的测试? 最佳答案 您无需模拟要测试的对象。如果你这样做,你就是在测试模拟,而不是你的对象!您需要模拟正在测试的对象的依赖性。

c# - 使用 Mocks 验证依赖调用时的 TDD Arrange Act Assert 模式

我正在使用Moq来测试一些void方法的行为。使用MockBehaviour.Strict必须在Arrange步骤期间指定对模拟的每次调用。这导致许多测试没有任何Assert(或Verify)步骤。通过条件只是测试运行没有抛出异常。我错过了什么吗?Arrange,Act,Assert模式在使用严格模拟时是否不合适?是否有更语义化的方式来安排这些测试?一个简单的虚构例子......[TestClass]publicvoidDeleteUser_ShouldCallDeleteOnRepository(){//ArrangevaruserRepository=newMock(MockBeh

c# - 测试使用 HttpContext.Current.Request.Files 的 Web API 方法?

我正在尝试为使用HttpContext.Current.Request.Files的WebAPI方法编写测试,经过详尽的搜索和实验后,我无法弄清楚如何模拟它。正在测试的方法如下所示:[HttpPost]publicHttpResponseMessagePost(){varrequestFiles=HttpContext.Current.Request.Files;varfile=requestFiles.Get(0);//dosomeotherstuff...}我意识到有otherquestionssimilartothis,但他们没有解决这个具体情况。如果我尝试模拟上下文,我会遇到H

c# - 如何模拟采用动态对象的方法调用

假设我有以下内容:publicinterfaceISession{TGet(dynamicfilter);}}我有以下要测试的代码:varuser1=session.Get(new{Name="test1"});varuser2=session.Get(new{Name="test2"});我将如何模拟这个调用?使用最小起订量,我厌倦了这样做:varsessionMock=newMock();sessionMock.Setup(x=>x.Get(new{Name="test1")).Returns(newUser{Id=1});sessionMock.Setup(x=>x.Get(ne

c# - 最小起订量测试无效方法

您好,我是最小起订量测试的新手,很难做一个简单的断言。我正在使用一个界面publicinterfaceIAdd{voidadd(inta,intb);}IAdd接口(interface)的起订量是:Mockmockadd=newMock();mockadd.Setup(x=>x.add(It.IsAny(),It.IsAny()).callback((inta,intb)=>{a+b;});IAddtesting=mockadd.Object;因为add方法是无效的,它不会返回任何值来断言。我如何断言此设置? 最佳答案 为什么要使用

c# - 我如何使用最小起订量模拟一个集合

我是单元测试和模拟的新手,而且耳后仍然湿漉漉的。我正在使用Moq框架,我需要模拟一个集合,以便它生成一个具有我提供的值的成员。有问题的集合类是System.Configuration.SettingsPropertyCollection,其中包含SettingsProperty对象。反过来,SettingsProperty有一个Attributes返回SettingsAttributeDictionary的属性.我需要我的收藏才能产生一个SettingsProperty,在其System.Attribute中有一个自定义属性(源自Attributes.SettingsAttribute

c# - 使用最小起订量部分模拟类

我只想模拟以下类的GetValue方法,使用Moq:publicclassMyClass{publicvirtualvoidMyMethod(){intvalue=GetValue();Console.WriteLine("ORIGINALMyMethod:"+value);}internalvirtualintGetValue(){Console.WriteLine("ORIGINALGetValue");return10;}}我已经阅读了一些这应该如何与Moq一起使用。我在网上找到的解决方案是使用CallBase属性,但这对我不起作用。这是我的测试:[Test]publicvoid

c# - 如何使用 Moq 对 Entity Framework 6 中的删除操作进行单元测试

*更新编辑-部分解决方案-仍然需要帮助*-我发现异常只是误导。它给了我这个异常(exception),因为我得到了模拟属性被错误调用的次数。它应该被调用两次,而不是一次。那部分现在有效。但我仍然不明白为什么实体没有从列表中删除。是因为它是可查询的吗?下面是原始问题我一直在努力关注thislink学习如何单元实体框架6和6.1。但是它没有显示如何对删除操作进行单元测试。这里是我要测试的代码:publicvoidDeleteRequirement(intid){RequirementrequirementToDelete=GetRequirement(id);context.Require