Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.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
C# 如何自动测试我的数据库驱动功能?_C#_Sql Server_Database_Unit Testing_Automated Tests - Fatal编程技术网

C# 如何自动测试我的数据库驱动功能?

C# 如何自动测试我的数据库驱动功能?,c#,sql-server,database,unit-testing,automated-tests,C#,Sql Server,Database,Unit Testing,Automated Tests,我正在尝试改进我的应用程序中的自动测试,但我不确定最好的方法 我的应用程序从多个表单收集数据,重新编码并将其存储在数据库中。我已经创建了一个非常复杂的SQL视图,它将结构扁平化,因此可以将其导入到统计数据包(SPSS)中 我关心的是视图是复杂的,我希望围绕它自动化一些测试 目前,我有一些功能测试,它们创建一个完整的表单对象模型,并将其发送到应用程序中。然后,我从数据库中检索视图,并使用反射测试检索到的视图字段是否与原始数据匹配 问题是,这是非常手动和繁重的,我的固定装置很长,添加新场景很麻烦(即

我正在尝试改进我的应用程序中的自动测试,但我不确定最好的方法

我的应用程序从多个表单收集数据,重新编码并将其存储在数据库中。我已经创建了一个非常复杂的SQL视图,它将结构扁平化,因此可以将其导入到统计数据包(SPSS)中

我关心的是视图是复杂的,我希望围绕它自动化一些测试

目前,我有一些功能测试,它们创建一个完整的表单对象模型,并将其发送到应用程序中。然后,我从数据库中检索视图,并使用反射测试检索到的视图字段是否与原始数据匹配

问题是,这是非常手动和繁重的,我的固定装置很长,添加新场景很麻烦(即模型的各个部分不完整)

有人对我如何改进我的测试策略有什么建议吗?小贴士招数欢迎大家


谢谢

这是一个很难回答的问题。在我看来,你几乎想做一个一次性测试

首先,你的应用程序应该被构造,这样每个功能都在它自己的类中被隔离,从而使它易于测试,并且在测试其他东西时容易被存根替换。应注入对其他函数的依赖关系(依赖关系注入)

其次,对于数据库连接和SPSS文件编写器等外部系统,应该使用相同的技术。这涉及到包装这些功能,以便这些依赖项也可以被注入,从而在测试应用程序的其他方面时被存根取代

第三,请注意,如果测试很难编写,99,99%的情况下,这表明您的设计没有可能的那么强大

问候,,
Morten

DbFit非常适合这种情况。DbFit是FitNesse的一个扩展,您可能已经在使用它了,因为您提到了使用“fixture”。在任何情况下,DbFit都可以很容易地设置一个测试,您可以在其中播种一些数据,运行视图,比较预期结果,然后它将自动回滚您刚刚为测试播种的数据。当您向视图中添加更多字段时,它很容易更新。它不需要像其他SQL“单元”测试套件那样在数据库中添加其他对象

有关使用DbFit的更多信息,请访问:

下面是我为其编写的教程,其中解释了基本选项:


谢谢您的回复。我对系统中的所有组件进行了离散单元级测试和模拟功能测试。我想我在这个级别真正想要测试的是数据库视图正在提取正确的数据。i、 我的sql是正确的吗。也许我不应该在功能测试中测试这个,但这是我能想到的唯一方法。你怎么认为?