Moq(发音为“Mock-you”或只是“Mock”)是.NET的一个模拟框架,它大量使用lambdas和LINQ表达式树。
我想循环遍历 XmlNodeList。如何在 Moq 中模拟 XmlNodeList,以便可以像 foreach 循环一样循环遍历它: foreach(节点中的 XmlNode xmlNode) { //做
我遇到了 xUnit.net 和 Moq 测试问题,我已经模拟了控制器的依赖项并设置了模拟以返回任务,但我的 response.Value 在这里为 null。有人可以帮忙吗...
我想创建一个工厂,为我的单元测试创建常用的模拟对象。我已经成功设置了测试,以便可以模拟 Linq2Sql DataContext 并返回内存表
我有一个接口IPeakCommunication,以及派生类PeakCommunication。在派生类中,我有一个 Send(RequestData request) 方法的实现,它可以执行某些操作,正如我所期望的......
我在 .NET Core 中有一个项目,我正在使用 AutoMapper 在我的类型之间进行映射。但我遇到了一个问题,我想模拟自定义值解析器的参数。我创建了虚拟 exa...
我正在尝试在 xunit 中测试我的类(见下文),该类应该连接到 API 并获取所有客户,即我分页的响应。我无权访问 API 如何在 Xunit 中模拟它,...
如何使用 x-unit 方法 ASP Web API .Net 6 调用模拟框架中的服务类?
我们将使用 .NET 6 在 ASP.NET Web API 中执行单元测试。我们正在尝试使用 Moq 框架和 xUnit 测试方法进行单元测试。首先,我们下载 Moq 包。接下来...
如何为 ExecuteSqlRawAsync 编写单元测试用例
我想使用 Nunit 和 moq 为以下方法编写一个单元测试用例。该方法有一个 ExecuteSqlRawAsync,它将数据从一个表插入到另一个表。如果有任何例外,我会滚动...
这是我在 ASP.NET MVC 项目中的一个控制器使用 NUnit 和 Moq 进行的单元测试: [测试] 公共无效Create_job_with_modelstate_errors_fails() { var job = new JobDto(); 这个。
我是最小起订量新手。我正在嘲笑 PagingOptions 类。该类如下所示: 公共类 PagingOptions { [Range(1, 99999, ErrorMessage = "偏移量必须大于 0。")] ...
我想为try catch块(C#)编写单元测试。 公共行动结果索引() { 尝试 { ------------- } 捕获(异常前) { 扔; } } 当你...
我必须模拟该函数 bool ReceiveData(long channelID, int count, int timeOut, out byte[] data); 困难在于 out 参数每次都应该返回不同的东西...
我得到了这个: 私人列表> m_tempCars 公共 IList> CarTypes { 得到 { 如果(m_tempCars == null...
如何在 Moq 中设置通用返回类型? 我有以下界面: 公共接口 IFoo { T 条(); } 现在我想设置 Bar() 在测试中工作 var foo = 新...
如何使用 Moq 模拟 ResourceGroupCollection?
我的代码如下: SubscriptionResource 订阅 =等待armClient.GetDefaultSubscriptionAsync(); var resourceGroup = subscription.GetResourceGroups().FirstOrDefault(rg => rg.Data.Name.
模拟 IRestClient.ExecuteAsync 结果上的空数据
我有一个使用 RestSharp (110.2.0) 的方法,我想对其进行单元测试,但遇到困难。 样品方法: 私有IRestClient _restClient; 公共异步任务 GetToken() { 变量...
我正在尝试最小起订量我拥有的存储库,其定义为: 公共 IQueryable GetAll( 表达式> 谓词 = null, 功能 我正在尝试最小起订量我拥有的存储库,其定义为: public IQueryable<TEntity> GetAll( Expression<Func<TEntity, bool>> predicate = null, Func<IQueryable<TEntity>, IOrderedQueryable<TEntity>> orderBy = null, Func<IQueryable<TEntity>, IIncludableQueryable<TEntity, object>> include = null, bool disableTracking = true ) 有办法嘲笑这个吗?我希望使用我提供存储库的模拟数据来执行查询。我不知道如何告诉 MOQ,当我调用 GetAll 时,我希望它仍然运行传入的查询,但针对我提供的数据集执行此操作。所以它不会进入数据库,而是针对我配置的模拟集。我能够创建数据,它包含 12 条记录,但我希望 getall moq 调用来执行其查询并将其过滤为仅应返回的 2 条记录。 调用发生的实际服务是: var list = await _unitOfWork.GetRepository<CASE_ACTIVITY>() .GetAll(predicate: x => x.SM_SITE_ID == siteId && x.CMS_USER_ID == userId && x.IS_DELETED == "N" && x.Appointment.IS_DELETED == "N" && x.Appointment.IS_ARCHIVED == "N" && x.IS_ARCHIVED == "N" && ( (x.Appointment.APPOINTMENT_DATETIME.HasValue && x.Appointment.APPOINTMENT_DATETIME.Value.Date == DateTime.Today.Date) || (!x.Appointment.APPOINTMENT_DATETIME.HasValue && x.ACTIVITY_STATUS_ID == _appSettings.CASE_ACTIVITY_STATUS_ID_PENDING) ) ) .Include(x => x.Activity_Lookup) .Include(x => x.Appointment) .ThenInclude(x => x.Cms_Client) .Include(x => x.Cms_Case) .ToListAsync(); 假设您对 GetRepository() 方法有足够的控制权以使 it 返回您的模拟存储库,则模拟方法本身相当简单(如果有点冗长)。我刚刚将 GetAll 方法转储到名为 IRepository 的接口中,这就是模拟的样子。在 Returns 方法内部,您可以根据需要访问要执行或忽略的每个参数。 var mock = new Moq.Mock<IRepository>(); mock.Setup(a => a.GetAll<int>(It.IsAny<Expression<Func<int, bool>>>(), It.IsAny<Func<IQueryable<int>, IOrderedQueryable<int>>>(), It.IsAny<Func<IQueryable<int>, IIncludableQueryable<int, object>>>(), It.IsAny<bool>())) .Returns<Expression<Func<int, bool>>, Func<IQueryable<int>, IOrderedQueryable<int>>, Func<IQueryable<int>, IIncludableQueryable<int, object>>, bool>((param1, param2, param3, param4) => { return new[] { 1, 2, 3 }.AsQueryable(); }); var result = mock.Object.GetAll<int>(); 从这里开始,如果不看到更多代码,我们就无能为力。不过,从抽象的角度来说,您将把您的 mock.Object (其类型为 IRepository)并将其提供给 GetRepository() 从中提取的任何集合。当然,还要注意,我使用 int 作为通用参数——您可以将其替换为您使用的任何类型。也许可以制作一个接受通用参数的模拟,但希望这不是必需的!
我已经在相同的场景下做了很多次,但这次失败了,我无法找出原因,请帮助我。 下面是我的代码,我已经尝试过最小起订量和
假设我有一个以这种方式实现的处理程序。没有存储库,逻辑按以下方式编写在处理程序内部。 既然我不应该嘲笑 EF,那怎么会......
我使用 NLog 4.5.11 进行日志记录,使用 moq 4.10.1 进行模拟。 我有一个中间件,它使用 NLog 将异常详细信息写入日志文件。 我需要在我的 API 项目中对中间件进行单元测试并检查...