我目前正在尝试运行单元测试,其中我需要 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/