如何对集合的保存进行单元测试

时间:2015-04-28 21:04:11

标签: c# arrays unit-testing collections

我正在尝试为将多个记录保存到数据库中的方法编写单元测试。该方法传递一个集合参数。该方法循环遍历该集合。设置与该对象关联的用户标识,并在数据库中更新记录。这是为集合中的每个对象完成的。除了写入数据库之外,还要了解如何创建单元测试。

谢谢,

2 个答案:

答案 0 :(得分:2)

如评论中所述,您可以选择通过某个界面抽象数据库操作。如果使用ORM,则可以实现通用存储库,如果使用普通ADO.NET,则可以实现类似事务脚本的内容。

另一种选择是使用SQLite内存数据库。目前尚不清楚您使用的是什么数据库接口,但.NET中的大多数数据库访问方法(包括实体框架)都支持SQLite。这不是一个单元测试,但它可以完成这项工作。

答案 1 :(得分:1)

正如评论中所建议的那样,您有两个选择

  • 为实际写入数据库创建抽象,并验证与该抽象的交互是否与您对方法的预期一致。这将为您提供快速的单元测试,但您仍然必须为实现抽象的实现编写集成测试,这实际上将数据放入数据库中。要验证交互,您可以使用模拟库或创建接口实现,仅用于测试。
  • 创建一个集成测试,写入数据库并验证数据是否按预期插入。这些测试会更慢,但会让您确信数据实际上会放在数据库中。

我的偏好是第二个选项,因为这会测试数据实际上是否会被正确保留,最终你必须要做的事情,但不是每个人都喜欢这样做。