草庐IT

c# - RhinoMocks - 获取被调用函数的参数

使用RhinoMocks-我可以获取被调用函数的参数吗?我是说;我可以从函数调用中获取一些未知参数吗?我有一个模拟,我希望在这个模拟上调用一些函数。我知道其中一个参数,但另一个参数是未知的,因为它来自使用模拟并在其上调用函数的类。更具体地说——在这种情况下——未知参数是一个lambda函数。这是一个回调函数,应该在函数完成执行时调用。由于模拟阻止调用回调,我想获取它并自己调用它。所以;我想检查函数是否被调用。我想确保一些论点是预期的。我想找出未知的参数,然后再对它们进行一些操作。假设两个参数都是整数(为简单起见)我想做这样的事情:intunknownInt;_fakeSomething

c# - 单元测试 Web App 时如何模拟应用程序路径

我正在测试MVCHTML帮助器中的代码,该帮助器在尝试获取应用程序路径时抛出错误://appropriatecodethatusesSystem.IO.Pathtogetdirectorythatresultsin:stringpath="~\\Views\\directory\\subdirectory\\fileName.cshtml";htmlHelper.Partial(path,model,viewData);//exceptionthrownhere抛出的异常是System.Web.HttpException:Theapplicationrelativevirtualpat

c# - 通过安装程序设置模拟属性会导致 'Expression is not a method invocation'

我有下面的代码,其中我的Mock接口(interface)有一个Recorder属性,它是一个类。然后我尝试在该类上设置一个属性,但我得到了一个Expressionisnotamethodinvocation错误。你能帮忙吗?错误是在运行时尝试设置枚举属性时出现的。它会抛出一个带有以下堆栈跟踪的ArgumentException:atMoq.ExpressionExtensions.ToMethodCall(LambdaExpressionexpression)atMoq.Mock.c__DisplayClass1c`2.b__1b()atMoq.PexProtector.Invoke

c# - 使用最小起订量模拟 HttpContext 进行单元测试

这个问题在这里已经有了答案:HowdoImocktheHttpContextinASP.NETMVCusingMoq?(6个答案)关闭8年前。我需要一个HttpContext的模拟来进行单元测试。但我正在为此苦苦挣扎。我正在创建一个方法,该方法将通过SessionIdManager以编程方式更改sessionId。并且SessionIdManager需要HttpContext而不是HttpContextBase。但是我找不到任何模拟HttpContext的例子。那里的所有示例都只是为了制作HttpContextBase。我在下面试过,但它们没有用HttpContexthttpConte

c# - 在 C# 中模拟非虚拟方法

这个问题在这里已经有了答案:Howtomocknonvirtualmethods?(8个答案)关闭11个月前。我正在尝试测试我使用模拟创建的一些类,但我发现c#中的所有免费模拟框架都无法模拟非虚拟方法(如果它不在接口(interface)中)。但是,有TypeMock可以做到这一点,所以这是可能的。任何人都可以展示如何去做吗?如果我能做到这一点,我什至可能会尝试为开源框架做出贡献。提前致谢

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

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

c# - 调用模拟对象的异步方法时出现 NullReferenceException

我正在尝试使用MOQ对以下ViewModel的LoginExecute方法进行单元测试publicclassLoginViewModel:ViewModelBase,ILoginViewModel{INavigationServicenavigationService;IDialogServicedialogService;IAdminServiceadminService;publicRelayCommandLoginCommand{get;set;}privatestring_productID;publicstringProductID{get{return_productID;

c# - 我可以创建一个我可以添加的模拟数据库上下文,然后进行搜索吗?

我有一个简单的文档管理器,它被注入(inject)到我在asp.netc#MVC项目中的Controller中。该项目是数据库优先的,Document表由documentId索引,这是一个自动递增的整数。我一直在尝试编写一个测试来测试CreateNewDocument的以下实现,它在成功添加文档后查找它并返回新文档ID。问题是我找不到模拟MyEntityFrameWorkEntities的方法,我可以向其中添加文档,然后使用linq搜索该文档。我认为它不起作用,因为模拟的_context.Document.Add并没有真正做任何事情。我的问题是:我能否以不同的方式设置我的模拟,以便我可

c# - Moq 中 SetupSet 和 SetupProperty 的区别

我知道SetupSet是在Moq中设置属性的旧方法。它现在已经过时了,但我的智能感知显示两者都没有标记为过时。谁能指出它们之间的实际区别? 最佳答案 我大概发现了一个不同之处,如下所示。如果您尝试模拟只读属性,则必须使用SetupGet,因为SetupProperty在这种情况下不起作用。而如果您想设置期望值,SetupProperty可用于非只读属性。例如,下面是行不通的publicinterfaceIXyz{intId{get;}}//TestSideCodevar_mock=newMock();_mock.SetupPrope

c# - 是否需要对接口(interface)的定义进行单元测试?

我偶尔听说或读到有人在单元测试中断言他们的接口(interface)。我的意思不是模拟一个接口(interface)用于另一种类型的测试,而是专门创建一个测试来伴随该接口(interface)。考虑这个极端蹩脚和即兴的例子:publicinterfaceIDoSomething{stringDoSomething();}和测试:[TestFixture]publicclassIDoSomethingTests{[Test]publicvoidDoSomething_Should_Return_Value(){varmock=newMock();varactualValue=mock.E