moq 相关问题

Moq(发音为“Mock-you”或只是“Mock”)是.NET的一个模拟框架,它大量使用lambdas和LINQ表达式树。

模拟创建的对象,然后将其添加到字典中

如何模拟在运行时使用操作创建的对象?在下面的代码中,我想模拟 Connection 类以进行单元测试。 私人只读字典 如何模拟在运行时使用操作创建的对象?在下面的代码中,我想模拟 Connection 类以进行单元测试。 private readonly Dictionary<IPEndPoint, IDeviceConnection> _connections = new Dictionary<IPEndPoint, IDeviceConnection>(); private async Task DiscoveryTask(CancellationToken stoppingToken) { try { while (!stoppingToken.IsCancellationRequested) { // Action which allows new Connection to be created and added to dict _connections.Add( ipEndPoint, new DeviceConnection( ipEndPoint, new TcpClient(), stoppingToken)); _connections[ipEndPoint].StartConnectionTask(); } } } catch (Exception ex) { } } 接受修改代码的建议。 简单来说:如果你有这样的东西 public class ExampleClass { public void DoSomething() { var someTool = new SomeTool(); // Not (easily) mockable } } 你可以重构这样的东西 public interface ISomeToolFactory { SomeTool Create(); } public class ExampleClass { private readonly ISomeToolFactory _someToolFactory; public ExampleClass(ISomeToolFactory toolFactory) { _someToolFactory = toolFactory } public void DoSomething() { var someTool = _someToolFactory.Create(); } } // "Real" Factory => public class SomeToolFactory : ISomeToolFactory { public SomeTool Create() { return new SomeTool(); } } // "Test" Factory => public class MockedSomeToolFactory : ISomeToolFactory { public SomeTool Create() { return Mock.Of<SomeTool>(); // whatever you need for testing } } 请注意,这是简单的,而不是“完全”您的情况。将其视为您可以根据需要进行修改的模板。

回答 1 投票 0

使用 Mock 进行 Nunit 测试。接口实例

我有以下(简化的)代码。 公共类控制器 { 私有只读 IService _service; 公共控制器(IService服务) { _服务=服务; }

回答 3 投票 0

xUnit 测试抛出 TypeInitializationException

我在 net8.0 Maui 解决方案中有一个 xUnit 测试项目。解决方案中的所有项目都针对相同的 Windows 版本(Mac 和 Android 除外) 我设置了以下测试来检查...

回答 1 投票 0

模拟 EncryptAsync 方法并从 Azure.Security.KeyVault.Keys.Cryptography 返回 EncryptResult

我正在尝试模拟 Azure.Security.KeyVault.Keys.Cryptography.CryptographyClient 的 EncryptAsync。但我无法创建需要从模拟 EncryptAs 返回的 EncryptResult 的新对象...

回答 1 投票 0

对后台包含多个连续任务的类进行单元测试

我想对包含多个连续任务的 WpaConnection 类进行单元测试。这些任务的启动依赖于 TCP 连接。我想收集一些关于什么的信息...

回答 1 投票 0

如何模拟 TaskOrchestrationContext.CallHttpAsync 以测试 Azure Function .net 隔离方法

我有这个Azure Function Orchestrator 使用 Microsoft.Azure.Functions.Worker; 使用 Microsoft.DurableTask; 使用系统; 使用 System.Collections.Generic; 使用 System.Linq; 使用 System.Net.Http;

回答 1 投票 0

模拟 EF Core 8 中的 AddAsync 方法

我想测试以下调用: 公共异步任务 CloneSnapshot(int snapshotIdToClone, string newName) { var snapshotToClone = _databaseContext.Snapshots.Include(s => s.Entri...

回答 1 投票 0

正常运行时CancellationToken为true,但是执行单元测试用例时cancellationToken为false

我正在尝试使用 IHttpClientFactory 进行 PostAsync 调用,取消令牌工作正常,并且 CatchBlock 捕获了异常。 但是当尝试模拟取消方法时...

回答 1 投票 0

尽管指定了 Returns(),模拟对象仍返回 null

我目前正在与 Moq 合作进行一些单元测试。我遇到了一个问题,我指定我的模拟对象返回什么,但实际调用返回 null 而不是我的内容

回答 2 投票 0

单元测试模拟数据只能返回一次。之后返回 null

我是与SolidEdge api交互的单元测试方法。 Solid Edge API 是一个 COM 组件,用于像 AutoCAD 一样自动更改 3D 模型。 模拟数据只能返回一次。之后它又...

回答 1 投票 0

验证模拟属性的方法是否以部分字符串作为参数调用

我正在使用 MoQ 和 C# 来模拟公共属性,我想知道模拟的方法之一是否是使用以特定字符集开头的任何字符串调用的。 例如,虽然我知道

回答 5 投票 0

GoogleCloudVision c# - 如何对服务进行单元测试

我在后端代码中实现了 Google Cloud Vision 服务。我想对服务进行单元测试,但我不知道如何模拟它。 这是我要模拟的当前代码。有没有办法...

回答 2 投票 0

最小起订量设置使用构造函数参数获取 dbContext

情况 我在这里尝试使用 MOQ 为我的 GroupService 编写一些单元测试。 为了创建 GroupService 的实例,我模拟了 4 个需要通过

回答 2 投票 0

Xunit 验证在模拟记录器中不起作用

我有以下代码, 命名空间 MarketData.Service.Diagnostics { 使用系统; 使用 System.Collections.Generic; 使用系统数据; 使用 Microsoft.Extensions.Logging; 酒吧...

回答 1 投票 0

删除扩展上的引用

我正在使用 Visual Studio .NET 2012 和 NuGet 来管理 ASP.NET MVC 4 解决方案的引用。 如何删除通过 NuGet 创建的引用? 我知道我可以通过右键删除它-

回答 3 投票 0

如何使用 Moq 模拟 Response.StatusCode?

我有以下方法: 公共无效SetHttpStatusCode(HttpStatusCode httpStatusCode) { Response.StatusCode = (int)httpStatusCode; } 以及以下测试: [测试方法] 公共空间

回答 1 投票 0

如何使用 Request.Form 正确模拟 HttpContextAccessor 以在 .NET 6 中进行控制器测试

我有以下用于模拟 HttpContextAccessor 的代码。大部分工作正常,但我无法按预期工作的区域是获取表单值,特别是在尝试获取它们时......

回答 1 投票 0

模拟EF核心dbcontext和dbset

我正在使用 ASP.NET Core 2.2、EF Core 和 MOQ。当我运行测试时,我收到此错误: 消息:System.NotSupportedException:非虚拟(可在 VB 中重写)成员上的设置无效:x => x。

回答 7 投票 0

如何在 Moq 测试中注入依赖项而无需服务构造函数上的接口?

我正在尝试创建一个 Moq 测试项目,但我无法在服务/接口上注入依赖项,因为我的服务构造函数没有接口参数。 服务构造函数: 公开

回答 1 投票 0

带有泛型返回类型的 func 参数的泛型方法的最小起订量设置

我有一个通用方法,如下所示, 公共接口 IMemoryCacheWithPolicy { TItem GetOrCreate(对象键, Func createItem, CacheItemPrioritypriorityLevel); } 我...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.