unit-testing - AutoFixture生成JsonDocument?

标签 unit-testing autofixture system.text.json

我目前正在尝试运行单元测试,其中我需要 AutoFixture 来生成 JsonDocument 属性。

但是这是不可能的,因为

AutoFixture.ObjectCreationExceptionWithPath : AutoFixture was unable to create an instance from System.Text.Json.Utf8JsonReader&, most likely because it has no public constructor, is an abstract or non-public type.

如何使用 AutoFixture 自动创建一个包含 JsonDocument 的类。

我想使用 AutoFixture 创建的类非常简单,除了 JsonDocument 之外,所有属性都是简单类型。

public class Car 
{
   public string Name;
   public int Age;
   public JsonDocument GeneralCarInfo;
}

最佳答案

如果空 Json 就足够了,您可以使用以下 AutoFixture customization :

public class EmptyJsonDocumentCustomization : ICustomization
{
    public void Customize(IFixture fixture)
    {
        fixture.Customize<JsonDocument>(x =>
            x.FromFactory(() =>
                JsonDocument.Parse("{}")));
    }
}

如果没有,您可能需要序列化与您的场景匹配的 JSON。

关于unit-testing - AutoFixture生成JsonDocument?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66135995/

相关文章:

c# - JustMock - 检查传递的方法参数的值

unit-testing - 可以使用 Autodata xUnit Theories 注入(inject)的 SUT 的特定构造函数参数吗?

c# - AutoFixture:配置开放式泛型样本生成器

c# - System.Text.Json.JsonSerializer 在用非原始值序列化字典键时忽略 DictionaryKeyPolicy

c# - ASP.NET Core 3.1 OData PageResult 序列化

javascript - 使用 sinon 提交表单时如何测试函数是否被调用?

database - Django 能否在每个单元测试之间刷新其数据库?

java - 我们可以模拟第三方对象的创建或调用吗?

c# - AutoFixture:提供一个 Func 作为构造函数参数

c# - 从 JSON 获取属性名称