使用 fluentconversion 将单元测试转换为 dto 扩展方法
unit test convert to dto extension method with fluentconversion
如果我有一个将 Person
对象转换为 PersonDTO
的扩展方法,那么
- 我应该对转换是否正确进行进行单元测试
- 如果是这样,我使用
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。
如果我有一个将 Person
对象转换为 PersonDTO
的扩展方法,那么
- 我应该对转换是否正确进行进行单元测试
- 如果是这样,我使用
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。