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