使用Rhino mock模拟数据库对象

时间:2013-04-10 12:52:38

标签: unit-testing c#-4.0 testing rhino-mocks rhino

如果已经提出这个问题,我很抱歉。我对Unit Testing非常陌生,我想使用Rhino进行模拟。

所以问题是......我有一个测试方法,并且该方法假设根据输入参数检索一些数据并返回为数据表。

它还会进行一些计算,以找出应该调用哪个存储过程以及使用哪组参数。

我发出的问题是,当我使用模拟对象调用该方法时......由于对象未设置为instanse,因此它会在数据库检索行代码处于日期时抛出错误。这是预期的,因为我们正在嘲笑它们,因为它们没有从数据库中重新数据。

那么在那种情况下可以做些什么。

1 个答案:

答案 0 :(得分:1)

现在似乎是介绍Repository Pattern的好时机。

如果你介绍的话,生成查询到DB的逻辑和从DB读取数据的逻辑将封装在Repository中。

在这种情况下,您可以在测试中模拟/存储存储库,并且您可以对所有使用存储库的类进行单元测试,而不使用创建测试数据库。

Repository mock将验证传入的参数是否正确 Repository存根将返回每个特定测试所需的任何特定于测试的数据。