单元测试列表<>
本文关键字:列表 单元测试 | 更新日期: 2023-09-27 18:12:58
我是单元测试新手。我想单元测试一个公共方法,它从sql中获取数据,并将其保存在LIST<>中。那么最好的方法是什么呢?这是我的代码,
public static IList<UserDetails> GetUsersListForAllLocation()
{
using (AuthorizationScope authScope = new AuthorizationScope(AdminLogicalResource.Contacts.GetDisplayName(), ApplicationPermission.Update.ToString()))
{
var parameters = new[]
{
new Simplex.Parameter("@LoggedInUserId", ComponentContext.CurrentCustomer.UserId)
};
IList<UserDetails> contactList = ComponentContext.CommonDal.DeserializeMultiRecords<UserDetails>("[CR2].[spGetAllLocationUsers]", parameters, storedProcedure: true);
return contactList;
}
}
此代码似乎与sql数据库紧密耦合,因此您可能需要集成测试而不是单元测试。
如果您想进行集成测试,您可以:
- 用已知数据建立测试数据库
- 让这个方法在测试环境 中查询这个测试数据库
- 断言您检索的列表实际上是您期望的列表
您的测试可能看起来像
[Test]
public void ShouldRetrieveItemsFromDatabase(){
List<UserDetails> expected = BuildExpectedList();
List<UserDetails> actual = GetUsersListForAllLocation();
CollectionAssert.AreEquivalent(expected, actual);
}