使用RhinoMocks-我可以获取被调用函数的参数吗?我是说;我可以从函数调用中获取一些未知参数吗?我有一个模拟,我希望在这个模拟上调用一些函数。我知道其中一个参数,但另一个参数是未知的,因为它来自使用模拟并在其上调用函数的类。更具体地说——在这种情况下——未知参数是一个lambda函数。这是一个回调函数,应该在函数完成执行时调用。由于模拟阻止调用回调,我想获取它并自己调用它。所以;我想检查函数是否被调用。我想确保一些论点是预期的。我想找出未知的参数,然后再对它们进行一些操作。假设两个参数都是整数(为简单起见)我想做这样的事情:intunknownInt;_fakeSomething
我正在测试MVCHTML帮助器中的代码,该帮助器在尝试获取应用程序路径时抛出错误://appropriatecodethatusesSystem.IO.Pathtogetdirectorythatresultsin:stringpath="~\\Views\\directory\\subdirectory\\fileName.cshtml";htmlHelper.Partial(path,model,viewData);//exceptionthrownhere抛出的异常是System.Web.HttpException:Theapplicationrelativevirtualpat
我有下面的代码,其中我的Mock接口(interface)有一个Recorder属性,它是一个类。然后我尝试在该类上设置一个属性,但我得到了一个Expressionisnotamethodinvocation错误。你能帮忙吗?错误是在运行时尝试设置枚举属性时出现的。它会抛出一个带有以下堆栈跟踪的ArgumentException:atMoq.ExpressionExtensions.ToMethodCall(LambdaExpressionexpression)atMoq.Mock.c__DisplayClass1c`2.b__1b()atMoq.PexProtector.Invoke
这个问题在这里已经有了答案:HowdoImocktheHttpContextinASP.NETMVCusingMoq?(6个答案)关闭8年前。我需要一个HttpContext的模拟来进行单元测试。但我正在为此苦苦挣扎。我正在创建一个方法,该方法将通过SessionIdManager以编程方式更改sessionId。并且SessionIdManager需要HttpContext而不是HttpContextBase。但是我找不到任何模拟HttpContext的例子。那里的所有示例都只是为了制作HttpContextBase。我在下面试过,但它们没有用HttpContexthttpConte
这个问题在这里已经有了答案:Howtomocknonvirtualmethods?(8个答案)关闭11个月前。我正在尝试测试我使用模拟创建的一些类,但我发现c#中的所有免费模拟框架都无法模拟非虚拟方法(如果它不在接口(interface)中)。但是,有TypeMock可以做到这一点,所以这是可能的。任何人都可以展示如何去做吗?如果我能做到这一点,我什至可能会尝试为开源框架做出贡献。提前致谢
我有一个我想模拟的对象(比如HttpContext或其他对象)。有时,在某些单元测试中,我不得不模拟大量依赖项,并适本地设置它们的依赖项和值。下面有一些模拟httpcontext和另一个类的示例代码:publicstaticHttpContextBaseFakeHttpContext(){varcontext=newMock();varfiles=newMock();varrequest=newMock();varresponse=newMock();varsession=newMock();varserver=newMock();varuser=newMock();varidenti
我正在尝试使用MOQ对以下ViewModel的LoginExecute方法进行单元测试publicclassLoginViewModel:ViewModelBase,ILoginViewModel{INavigationServicenavigationService;IDialogServicedialogService;IAdminServiceadminService;publicRelayCommandLoginCommand{get;set;}privatestring_productID;publicstringProductID{get{return_productID;
我有一个简单的文档管理器,它被注入(inject)到我在asp.netc#MVC项目中的Controller中。该项目是数据库优先的,Document表由documentId索引,这是一个自动递增的整数。我一直在尝试编写一个测试来测试CreateNewDocument的以下实现,它在成功添加文档后查找它并返回新文档ID。问题是我找不到模拟MyEntityFrameWorkEntities的方法,我可以向其中添加文档,然后使用linq搜索该文档。我认为它不起作用,因为模拟的_context.Document.Add并没有真正做任何事情。我的问题是:我能否以不同的方式设置我的模拟,以便我可
我知道SetupSet是在Moq中设置属性的旧方法。它现在已经过时了,但我的智能感知显示两者都没有标记为过时。谁能指出它们之间的实际区别? 最佳答案 我大概发现了一个不同之处,如下所示。如果您尝试模拟只读属性,则必须使用SetupGet,因为SetupProperty在这种情况下不起作用。而如果您想设置期望值,SetupProperty可用于非只读属性。例如,下面是行不通的publicinterfaceIXyz{intId{get;}}//TestSideCodevar_mock=newMock();_mock.SetupPrope
我偶尔听说或读到有人在单元测试中断言他们的接口(interface)。我的意思不是模拟一个接口(interface)用于另一种类型的测试,而是专门创建一个测试来伴随该接口(interface)。考虑这个极端蹩脚和即兴的例子:publicinterfaceIDoSomething{stringDoSomething();}和测试:[TestFixture]publicclassIDoSomethingTests{[Test]publicvoidDoSomething_Should_Return_Value(){varmock=newMock();varactualValue=mock.E