我正在尝试为函数编写单元测试:
public async Task<IEnumerable<Person>> GetPerson()
{
var query = "SELECT * FROM Person";
using (var connection = _context.CreateConnection())
{
var person = await connection.QueryAsync<Person>(query);
return person.ToList();
}
}
位于 PersonServices 类中,继承自 IPersonServices 接口。
测试:
[Fact]
public void TestGetPersonReturnPerson()
{
var mocGetPerson = new Mock<IPersonServices>();
mocGetPerson.Setup(m => m.GetPerson().Result).Returns(Task.FromResult<IEnumerable<Person>>) ;
IPersonServices personServices = mocGetPerson.Object;
Assert.NotNull(personServices);
}
测试失败...
正确解决方案:
private static List<Person> GetFakePersonList()
{
return new List<Person>()
{
new Person
{
Id = Guid.NewGuid(),
dateTimeCreate = DateTime.Now,
Email = "[email protected]",
FirstName = "xxx",
LastName = "xxx",
Password = "123123"
}
};
}
[Fact]
public async Task TestGetPersonReturnPerson()
{
var mocGetPerson = new Mock<IPersonServices>();
mocGetPerson.Setup(m => m.GetPerson().Result).Returns(PersonControllerTest.GetFakePersonList);
var result = mocGetPerson.Object.GetPerson();
Assert.NotNull(result);
}