如果已经提出这个问题,我很抱歉。我对Unit Testing非常陌生,我想使用Rhino进行模拟。
所以问题是......我有一个测试方法,并且该方法假设根据输入参数检索一些数据并返回为数据表。
它还会进行一些计算,以找出应该调用哪个存储过程以及使用哪组参数。
我发出的问题是,当我使用模拟对象调用该方法时......由于对象未设置为instanse,因此它会在数据库检索行代码处于日期时抛出错误。这是预期的,因为我们正在嘲笑它们,因为它们没有从数据库中重新数据。那么在那种情况下可以做些什么。
答案 0 :(得分:1)
现在似乎是介绍Repository Pattern的好时机。
如果你介绍的话,生成查询到DB的逻辑和从DB读取数据的逻辑将封装在Repository中。
在这种情况下,您可以在测试中模拟/存储存储库,并且您可以对所有使用存储库的类进行单元测试,而不使用创建测试数据库。
Repository mock将验证传入的参数是否正确 Repository存根将返回每个特定测试所需的任何特定于测试的数据。