单元测试调用存储过程并返回结果的方法

时间:2017-11-13 14:54:44

标签: c# unit-testing

我对单元测试有疑问。我有一个方法,它接受2个日期时间参数:开始时间和结束时间。该方法调用数据库并在2个日期时间之间返回一组记录。我被告知要对这个逻辑进行单元测试,但我不确定如何。我的第一个尝试是直接调用数据库并检查有问题的表。然后调用该方法。最后,我会比较两个结果,看看它们是否相同 测试此方法对我来说没有意义,因为所有逻辑都在数据库中。我可以moq一些基本的对象,但是如果我的假数据被返回,那么我将要测试的是。即传入x,返回y,结果不为null将通过。我可能在这里错误的轨道,所以我可以使用一些建议。

1 个答案:

答案 0 :(得分:1)

如果您的数据库中有逻辑要进行单元测试,那么很遗憾,您只有三个选项:

  1. 将逻辑提取到服务和单元测试中(这可能会导致大量返工)
  2. 在事务和回滚中调用单元测试中的过程(这样做的缺点是您依赖于现有的数据库并减慢了单元测试的速度)。
  3. SQL Server具有使用shared classes inside its stored procedures的功能 - 因此您可以单独对该代码进行单元测试。
  4. 我以前written就这个问题,所以你可能会发现它很有用。