单元测试通过fluentconversion转换为dto扩展方法

时间:2019-07-17 11:10:37

标签: unit-testing fluent-assertions

如果我有一个将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();

1 个答案:

答案 0 :(得分:1)

首先,是的,应该对此代码进行测试。

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

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

有关比较对象图的更多信息,请参见this