使用 fluentconversion 将单元测试转换为 dto 扩展方法

unit test convert to dto extension method with fluentconversion

如果我有一个将 Person 对象转换为 PersonDTO 的扩展方法,那么

  1. 我应该对转换是否正确进行进行单元测试
  2. 如果是这样,我使用 fluentassertions 我如何断言转换是正确的

我的扩展方法是:

public static PersonDTO ToDto (this Person person)
    {
        if (person == null) return null;
        return new PersonDTO
        {
            FirstName = person.FirstName,
            LastName = person.LastName,
            Dob = person.Dob,
            Identifier= person.Id
        };            
    }

我的人物对象有其他未映射的属性。

为了获得 personDTO 对象,我将执行类似于以下的操作:

var newPerson = new Person{ //set properties here };
var personDto = newPerson.ToDto();

首先,是的,应该测试这段代码。

为了检查转换是否正确,您必须手动构建预期结果,然后断言函数的结果相同:

var person = new Person{ ... };
var expectedPersonDto = new PersonDto{ ... };
person.ToDto().Should().BeEquivalentTo(expectedPersonDto);

有关比较对象图的详细信息,请参阅this