我正在使用Fluent Assertion库作为我的单元测试中的一些自定义序列化代码的一部分,我正在寻找一种方法来强制将ShouldBeEquivalentTo比较为null和空列表.
基本上,我的测试看起来像:
[Test]
public void Should_be_xxx()
{
ClassWithList one = new ClassWithList { Id = "ten", Items = null };
string serialized = Serialize(one);
ClassWithList two = Deserialize(serialized);
two.ShouldBeEquivalentTo(one);
}
Run Code Online (Sandbox Code Playgroud)
但是,Deserialize方法的一个特性是,如果输入数据中缺少集合类型,它会将反序列化类的属性设置为空列表,而不是null.所以,非常简化,我最终得到的情况是实例二,Items = new List<string>而不是null.
显然,我可以one.Items = new List<string>()在比较之前设置,但实际上我有大量复杂的域对象,我在这些方法中断言,我正在寻找一个通用的解决方案.换句话说,有没有人知道如何进行以下测试:
public class ClassWithList
{
public string Id { get; set; }
public List<string> Items { get; set; }
}
[Test]
public void Should_be_xxx()
{
ClassWithList one = new ClassWithList { Id = "ten", Items = null }; …Run Code Online (Sandbox Code Playgroud)