草庐IT

c# - 在 Moq 中分配 out/ref 参数

是否可以分配out/ref参数使用Moq(3.0+)?我看过使用Callback(),但是Action不支持ref参数,因为它基于泛型。我还希望对It.Is的输入施加约束(ref)参数,尽管我可以在回调中这样做。我知道RhinoMocks支持此功能,但我正在从事的项目已经在使用Moq。 最佳答案 对于“out”,以下似乎对我有用。publicinterfaceIService{voidDoSomething(outstringa);}[TestMethod]publicvoidTest(){varservice=newMock();

【C#/.NET】xUnit和Moq实现TDD

​ 目录 前置条件MoqxUnitTDD实践创建项目红灯绿灯重构单元测试一些最佳实践总结 前置条件Moq安装Moq包Install-PackageMoq         Moq是一个Mocking库,通过它可以轻易地模拟对象来进行测试。在我们的例子中,我们将使用Moq来模拟一个计算器计算接口。 xUnit        xUnit是一个基于.NET平台的测试框架。它提供了各种测试机制,例如类、测试函数、断言等等。在我们的例子中,我们将使用xUnit来编写C#代码的测试用例。 TDD        测试驱动开发 (TDD) 是一种软件开发过程或方法,开发人员基本上通过单元测试开始创建软件——与传

c# - 使用 Moq 测试抽象类

我正在尝试对抽象类中的方法运行单元测试。我已经浓缩了下面的代码:抽象类:publicabstractclassTestAb{publicvoidPrint(){Console.WriteLine("methodhasbeencalled");}}测试:[Test]voidTest(){varmock=newMock();mock.CallBase=true;varta=mock.Object;ta.Print();mock.Verify(m=>m.Print());}留言:Methodisnotpublic我在这里做错了什么?我的目标是使用Moq框架测试抽象类中的方法。

c# - 使用 Moq 对方法进行单元测试

我正在尝试学习如何使用C#和Moq进行单元测试,并且我构建了一个小测试环境。鉴于此代码:publicinterfaceIUser{intCalculateAge();DateTimeDateOfBirth{get;set;}stringName{get;set;}}publicclassUser:IUser{publicDateTimeDateOfBirth{get;set;}stringName{get;set;}publicintCalculateAge(){returnDateTime.Now.Year-DateOfBirth.Year;}}我想测试方法CalculateAge(

c# - 使用 Moq 验证引用参数的值

我刚刚切换到最小起订量并遇到了问题。我正在测试一种创建业务对象的新实例的方法,根据用户输入值设置对象的属性并调用方法(SaveCustomerContact)来保存新对象。业务对象作为ref参数传递,因为它通过远程处理层。我需要测试传递给SaveCustomerContact的对象是否按预期设置了所有属性,但因为它在Controller方法中被实例化为新对象,所以我似乎无法这样做。publicvoidAddContact(){varcontact=newCustomerContact(){CustomerId=m_model.CustomerId};contact.Name=m_mod

c# - 检查属性是否已设置 - 使用 Moq

我不熟悉起订量和一般测试,所以这是我的菜鸟问题。如何测试Request的Status属性是否已使用Moq设置?publicclassDudeManager{privatereadonlyIDRepository_repo;publicDManager(IDRepositoryrepo){_repo=repo;}publicvoidCreate(Requestr){r.Status=Status.Submitted;_repo.AddRequest(r);}}是否有比以下方法更好的方法?也许使用VerifySet?[TestMethod]publicvoidAddingNewReques

c# - xUnit 和 Moq 不支持 async - await 关键字

我正在尝试探索如何将async和await关键字应用于我的xUnit测试。我正在使用xUnit1.9和AsyncCTP1.3。这是我的测试用例我有一个指定一个异步方法调用的接口(interface)publicinterfaceIDoStuffAsync{TaskAnAsyncMethod(stringvalue);}我有一个使用接口(interface)并调用异步方法的类publicclassUseAnAsyncThing{privatereadonlyIDoStuffAsync_doStuffAsync;publicUseAnAsyncThing(IDoStuffAsyncdoSt

c# - 在 C# 中使用 Moq 设置索引器

我不知道如何设置indexers在C#中与最小起订量。Moq文档很薄弱,我已经做了很多搜索......我想做的是类似于HowtoMoqSettinganIndexedproperty的解决方案。:varsomeClass=newMock();someClass.SetupSet(o=>o.SomeIndexedProperty[3]=25);我想修改上面的内容以适用于任何索引和任何值,所以我可以做这样的事情:someClass.Object.SomeIndexedProperty[1]=5;目前我有以下内容,这对索引属性getter非常有用,但如果我设置了值,Moq会忽略它:varso

c# - Moq设置方法返回值

我有下面的类,我正在尝试测试AddRecordToQueue方法。我正在使用Moq模拟AddRecordToQueue方法中AddToQueue方法的结果。AddToQueue方法返回一个bool值,所以我试图用真值模拟结果publicclassTest{privatereadonlyIRabbitMqConnectionrabbitMqConnection;publicTest(IRabbitMqConnectionrabbitMqConnection){this.rabbitMqConnection=rabbitMqConnection;}publicboolAddRecordTo

c# - 如何 Moq Entity Framework SqlQuery 调用

我已经能够使用这个link从带有最小起订量的EntityFramework模拟DbSet.但是,我现在想知道如何模拟对SqlQuery的调用。不确定这是否可能或如何,因为它依赖于知道正在调用什么“查询”的模拟数据库上下文。下面是我要模拟的内容。varmyObjects=DbContext.Database.SqlQuery("exec[dbo].[my_sproc]{0}","some_value").ToList();我目前还没有尝试任何东西,因为我不知道如何开始模拟这个例子。DbSet的模拟在下面并重新迭代,我可以正确地模拟返回MyObject的DbSet但是现在我正在尝试模拟一个