gpt4 book ai didi

xunit Assert.NotNull() 不能很好地处理 C# 可空类型

转载 作者:行者123 更新时间:2023-12-05 03:26:11 24 4
gpt4 key购买 nike

Assert.NotNull(res);
Assert.Equal(1, res.Foo); // CS8602 warning here

我正在使用 xunit.assert 2.4.1、.NET 6.0、VS 2022。

当“Ctrl+Click”导航到 Assert.NotNull() 时源代码我可以看到它定义为

public static void NotNull(object @object)

虽然我真的很期待看到

public static void NotNull([NotNull] object? @object)

从 xunit 源代码中可以看出,仅当启用 XUNIT_NULLABLE 条件编译变量时才使用可空风格的方法。难道是 nuget 下载了 xunit.assert 包的“不可为空”版本?我们如何强制使用“可空”版本(使用定义的 XUNIT_NULLABLE 构建)?

最佳答案

终于,xunit 2.4.2 发布了,Assert.NotNull() 可以很好地处理 C# 可空类型!!

以下代码是NotNull method in xunit.assert 2.4.2的实现.

        /// <summary>
/// Verifies that an object reference is not null.
/// </summary>
/// <param name="object">The object to be validated</param>
/// <exception cref="NotNullException">Thrown when the object reference is null</exception>
#if XUNIT_NULLABLE
public static void NotNull([NotNull] object? @object)
#else
public static void NotNull(object @object)
#endif
{
if (@object == null)
throw new NotNullException();
}

关于xunit Assert.NotNull() 不能很好地处理 C# 可空类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71808704/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com