xunit.net 相关问题

xUnit.net是.NET Framework的单元测试工具。 xUnit.net是由NUnit的原始发明者编写的,是用于测试C#,F#,VB.NET和其他.NET语言的最新技术。它适用于ReSharper,CodeRush和TestDriven.NET。 http://xunit.github.io/

C# .NET Core 数据流模式单元测试不等待操作完成

有一个 .NET Core Worker Service,它具有用于执行并行过程的数据流模式。它有TransformBlock和ActionBlock。 在运行 Worker 进程时,TransformBlock 和 Action...

回答 1 投票 0

C# Dotnet Core 数据流模式单元测试不等待操作完成

有一个 Dotnet 核心工作服务,它具有用于执行并行过程的数据流模式。它有TransformBlock和ActionBlock。 运行 Worker 进程时,TransformBlock 和

回答 1 投票 0

Pact 合约测试 - 当缺少所需的枚举成员时让测试失败

我们有一个案例,消费者对其消费的当前枚举成员非常严格。因此,消费者期望只收到枚举成员,并且对于拥有新的枚举成员感到非常失落。 电子...

回答 1 投票 0

在xunit中实例化IOptions<>

我正在尝试为一个类(在 .net Core 项目中)编写一个 xunit 测试,如下所示: 公共类FoodStore:IFoodStore { FoodList 食品项目; 公共食品商店(IOptions 我正在尝试为一个类(在 .net Core 项目中)编写一个 xunit 测试,如下所示: public Class FoodStore:IFoodStore { FoodList foodItems; public FoodStore(IOptions<FoodList> foodItems) { this.foodItems = foodItems; } public bool IsFoodItemPresentInList(string foodItemId) { //Logic to search from Food List } }` 注意:FoodList实际上是一个json文件,包含数据,在Startup类中加载和配置。 如何编写具有适当依赖注入的 xunit 测试来测试 IsFoodItemPresentInList 方法? 您可以使用 IOptions<FoodList> 方法创建 Options.Create 的实例: var foodListOptions = Options.Create(new FoodList()); 您可以使用 OptionsWrapper<T> 类来伪造您的配置。然后您可以将此对象传递给您要测试的类。这样你就不必使用 DI 或读取真实配置。 类似这样的: var myConfiguration = new OptionsWrapper<MyConfiguration>(new MyConfiguration { SomeConfig = "SomeValue" }); var yourClass = new YourClass(myConfiguration); 我遇到了类似的问题(使用xUnit),经过一番努力,我解决了。 答案这么晚了,但应该对其他人有帮助。 对于你的问题: public Class FoodStoreTest { private readonly IConfigurationRoot _configuration; private readonly IServiceProvider _serviceProvider; public FoodStoreTest(){ // read Json var configBuilder = new ConfigurationBuilder() .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddEnvironmentVariables(); _configuration = configBuilder.Build(); // SetUp DI var services = new ServiceCollection(); services.AddOptions(); // this statement is required if you wanna use IOption Pattern. services.Configure<YuntongxunOptions>(_configuration.GetSection("yuntongxun")); _serviceProvider = services.BuildServiceProvider(); } [Fact] public void GetFootItemOption() { IOption<FoodList> optionAccessor = _serviceProvider.GetService<IOptions<FoodList>>(); FoodList footListOptions = optionAccessor.value; Assert.NotNull(footListOptions) // ... } } 此外,您应该将“appSettings.json”复制到项目根文件夹。 在单元测试中,您通常不使用依赖注入,因为是您控制测试对象的创建。 要提供实现 IOptions<FoodList> 的合适对象,您可以自己实现具有所需行为的伪类,或者使用一些模拟框架动态配置实例,例如 Moq。 正如其他答案所建议的,在您的测试类中,您可以创建一个仅用于测试的选项实例。 你可以这样做; public class FakeFoodList : IOptions<FoodList> { public FoodList Value { get { return new FoodList(); // TODO: Add your settings for test here. } } } 然后这样称呼它; var foodOptions = new FakeFoodList(); var foodStore = new FoodStore(foodOptions); var response = foodStore.Act(); Assert.Equal("whatever", response); 您可以执行以下操作: private Mock<IOptions<SomeSettings>> _someSettings; 并且在测试方法中: `_someSettings = 新模拟(); _someSettings.Setup(o => o.Value).Returns(new SomeSettings { ClientId = "723jsisksokskskos", ClientSecret = "sjhs;~jspkasjd;asdj;asdpqwoepqwe", ConnectionStrings = new List<ConnectionStrings> { new ConnectionStrings { Acronym = "A1" }, new ConnectionStrings { Acronym = "A2" } } }); ` 模型结构: `公共类 SomeSettings : ISomeSettings { public const string ConfigurationName = nameof(SomeSettings); public string ClientId { get; set; } public string ClientSecret { get; set; } public string QueryCount { get; set; } public List<ConnectionStrings> ConnectionStrings { get; set; } }`

回答 6 投票 0

获取 VS Test Explorer 仅显示测试名称而不是完整类型名称

我的 VS 测试资源管理器显示包含完整类型名称的测试,如下所示: 公司名称.项目名称.Web.Tests.SutDoesWhatItShould 而不仅仅是: 苏特做了应该做的事 这是非常不可读的/

回答 2 投票 0

xUnit.net 反序列化期间发生灾难性错误

我正在测试 Orleans 8 应用程序,并且在 Visual Studio 2022 Enterprise 的“分析所有测试的代码覆盖率”方面遇到问题。 尽管测试工作正常

回答 1 投票 0

无法实例化类的代理

为了测试控制器项目,我创建了一个 xUnit 类型的项目,并编写了一个函数并在函数之上设置了一个 Fact 属性 [事实] 公共无效GetAllTest() { ...

回答 1 投票 0

ConfigurationBuilder.AddJsonFile 每隔一段时间就使用错误的 json 文件

我有一个.Net 8.0单元测试项目。该项目是包含应用程序项目的解决方案的一部分。 作为测试设置的一部分,使用 ConfigurationBuilder。 var 配置Bu...

回答 1 投票 0

C# xUnit 测试监听器

我正在构建一个基于 .Net Core 的 selenium 测试框架,团队决定使用 xUnit。一切都很好,一切都很顺利,但有一段时间,我们一直在尝试复制......

回答 1 投票 0

ExcludeFromCodeCoverage 在方法级别不起作用

我有一个 .NET 6 Core C# 应用程序,带有基于 XUnit 的单元测试和“XPlat 代码覆盖率”/Cobertura/Coverlet 测试覆盖率分析。 EF 数据上下文类中的一种方法被标记...

回答 1 投票 0

Xunit 是否使用源生成器来生成测试数据?

我的测试是这样的: [理论] [成员数据(名称(测试数据))] 公共异步任务测试(DateTime?startDate) { // 行为 var currentDate = RunCalculation(); // 断言 当前...

回答 1 投票 0

如何将 xUnit 项目添加到 .NET 7 MAUI 解决方案?

我想在我的 .NET 7 MAUI 应用程序上对我的视图模型、服务等运行单元测试。我关注这个,但它是针对 .NET 6 的,所以我发现这个是针对 .NET 7 的,但似乎两者都使用相同的过程。一个...

回答 2 投票 0

使用 C# 中的测试服务器确定对 Xunit 测试的依赖关系

我使用 c# 测试服务器来做一些测试,但我必须为每个 Xunit Fact 启动一个新的测试服务器。这是因为我有一些假的实现,假的持久性,甚至智慧......

回答 1 投票 0

在 xUnit 2.x 中的测试类上使用多个 collectionfixture

我正在为我的 DataAccessRepository (使用实体框架)类编写测试用例。该类在构造函数中采用两个参数。 连接对象 自动映射器对象 现在,我正在使用collectionFi...

回答 1 投票 0

使用 VS 测试资源管理器时如何通过 xUnit.net Trait 属性过滤单元测试?

假设我有带有如下签名的集成测试: [事实] [特征(“类别”,“集成”)] 公共异步任务 FooTest() 如果我只想运行单元测试,在 dotnet core 中我可以运行

回答 1 投票 0

XUnit InmemoryDB 调试测试通过但运行时失败

我有一个静态启动成员,由注入上下文的生产和测试项目使用。在测试项目中,这使用内存数据库 我正在编写一个集成类型测试......

回答 1 投票 0

如何在 Visual Studio 中引用 Xunit 测试中的测试文件?

我们使用 Xunit 进行测试。我们使用 Xunit 插件通过内置的 Visual Studio 2013 Test Runner 运行测试。 问题是一些测试需要引用

回答 5 投票 0

Xunit 2.3.0 无法将日期作为内联参数传递

在 xUnit 2.2 及之前的版本中,我们能够在实现理论时将日期字符串作为内联数据传递。 [理论] [InlineData("标题 1", "测试 1", 1, "教育", "2017-3-1", "2018-12-3...

回答 4 投票 0

使用 MOQ 在 xunit 项目中使用参数化构造函数对控制器进行单元测试

我正在尝试为我的控制器编写一个 xunit 测试方法来测试 JsonResult。但由于控制器采用将从 DI 容器注入的参数,我不确定如何以及在哪里......

回答 1 投票 0

让xUnit组合参数

使用 xUnit 时,可以使用 InlineData 属性使用不同的数据多次运行相同的测试。 [理论] [内联数据(“A”,1)] [内联数据(“B”,2)] 公共无效 TestAllVa...

回答 1 投票 0

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