Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 使用Rhino mock模拟数据库对象_Unit Testing_C# 4.0_Testing_Rhino Mocks_Rhino - Fatal编程技术网

Unit testing 使用Rhino mock模拟数据库对象

Unit testing 使用Rhino mock模拟数据库对象,unit-testing,c#-4.0,testing,rhino-mocks,rhino,Unit Testing,C# 4.0,Testing,Rhino Mocks,Rhino,如果已经有人问过这个问题,我很抱歉。我对单元测试非常陌生,我想使用Rhino进行模拟 所以问题是…我有一个方法要测试,这个方法是假设根据输入参数检索一些数据,然后作为datatable返回 它还进行一些计算,以确定应该调用哪个存储过程以及使用哪一组参数 我的问题是,当我用mock对象调用该方法时……它在数据库检索代码行的日期处抛出一个错误,因为对象未设置为实例。这是意料之中的,因为他们并没有从数据库中重新运行数据,因为我们正在模拟它 那么,在这种情况下,我们可以做些什么呢。现在似乎是介绍的好时机

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

所以问题是…我有一个方法要测试,这个方法是假设根据输入参数检索一些数据,然后作为datatable返回

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

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


那么,在这种情况下,我们可以做些什么呢。

现在似乎是介绍的好时机

如果引入than,则生成数据库查询的逻辑和从数据库读取数据的逻辑将封装在存储库中

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

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