JsonDocument 解析 JsonReaderException - xUnit

JsonDocument Parse JsonReaderException - xUnit

我想我找到了一种更简洁的方法来测试 string 以查看其是否有效 JSON;然而,当我 运行 测试失败时,因为它的 returns 是 JsonReaderException 所以当我尝试将类型更改为此时,我收到保护错误,因为它似乎是内部的??

我在我的项目中使用 System.Text.Json

如何更改它以便我可以使用现有代码:

    public ApplicationSettings WithTemplate(string template) {

    try {
        JsonDocument.Parse(template);
        baseTemplate = template;
    }
    catch(JsonException ex) {
        throw ex;
    }
    return this;
}

测试代码:

[Fact]
public void WithTemplate_ThrowsJsonExceptionWhenBaseTemplateIsInvalid() {
    Assert.Throws<JsonException>(() => new ApplicationSettings()
                                    .WithTemplate("345[]{}q345"));

}

我找到了一个与 JsonDocument.Parse() 一样紧凑的解决方案,用于使用 JsonSerializer.

检查 json 字符串的有效性
string malformedJson = "345[]{}q345"

JsonSerializer.Deserialize<object>(malformedJson)

然后我能够针对异常 JsonException 进行测试,而不必担心 JsonReaderException