0

如果这个问题已经被问过,我很抱歉。我对单元测试非常陌生,我想使用 Rhino 进行模拟。

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

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

我的问题是,当我使用模拟对象调用该方法时......它会在日期从数据库检索代码行抛出一个错误,因为对象未设置为实例。这是意料之中的,因为我们正在模拟它们,因为它们没有从数据库中重新返回数据。

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

4

1 回答 1

1

似乎现在是引入Repository Pattern的好时机。

如果引入than,则生成对DB的查询的逻辑和从DB读取数据的逻辑将被封装在Repository中。

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

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

于 2013-04-13T11:56:20.203 回答