在 C# 中为数据成员和 TDD 反序列化声明 JSON 枚举数组

Declaring JSON Enum Array in C# for datamember and TDD deserialization

我在文件中创建了这个枚举,并在数据成员中使用了枚举数组。对于测试驱动开发,我很难为测试进行设置。下面是例子

我在 *.cs 文件中声明

public enum StatusType
{

   [EnumMember(Value = "Ok")]
   Ok =0,

   [EnumMember(Value = "Warning")]
   Warning,

   // ...
}

CRUD 的一部分是更新的,在这个模型部分,我将其设置为示例:

public partial class Patch
{
   // ...

   [DataMember(Name = "status:enum")]
   public StatusType[] StatusResult { get; set; }

}

*注意声明的数组。

对于 TDD,我该如何测试?同时定义两个枚举?

JSON 字符串中的示例:

"status:enum": ["ok", "warning"]``

最重要的部分是 TDD,其中测试能够比较枚举数组中的结果。

如果您不通过测试来驱动设计和实现,就不是测试驱动 开发 (TDD)。在类型之后编写测试不是 TDD,但它仍然是自动化测试。

不清楚你的意思

For TDD, how do I test for this?

但是从第二个问题来看,我了解到您是在询问如何根据 JSON 示例设置值。你可以在这样的测试中做到这一点:

[Fact]
public void TestExample()
{
    var patch = new Patch
    {
        StatusResult = new[] { StatusType.Ok, StatusType.Warning }
    };

    // Do something with `patch`, e.g.:
    Assert.Contains(StatusType.Ok, patch.StatusResult);
}

本例使用xUnit.net.