Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/300.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# 使用LINQ在数据库中断言值_C#_Linq_Nunit_Integration Testing_Sqlconnection - Fatal编程技术网

C# 使用LINQ在数据库中断言值

C# 使用LINQ在数据库中断言值,c#,linq,nunit,integration-testing,sqlconnection,C#,Linq,Nunit,Integration Testing,Sqlconnection,我通过调用函数,StoreData将数据存储到数据库中。在设计器代码中,SqlConnection打开,SqlCommands运行,SqlConnection关闭。成功运行StoreData后,数据存储在数据库中 我想通过断言我为集成测试选择的值(在StoreData运行之前,即id=0,time=“13:00”)等于在数据库中找到的值来运行对StoreData的集成测试(在StoreData运行后,即idcolumn=0和time\u stampcolumn=“13:00”) 我考虑过使用LI

我通过调用函数,
StoreData
将数据存储到数据库中。在设计器代码中,
SqlConnection
打开,
SqlCommand
s运行,
SqlConnection
关闭。成功运行
StoreData
后,数据存储在数据库中

我想通过断言我为集成测试选择的值(在
StoreData
运行之前,即
id=0,time=“13:00”
)等于在数据库中找到的值来运行对
StoreData
的集成测试(在
StoreData
运行后,即
id
column=
0
time\u stamp
column=
“13:00”


我考虑过使用LINQ。这是一种好方法,还是有更好的方法来实现这一点?

从技术上讲,这是一种集成测试,进行一个测试将从数据库中读取数据并确保其正确性是完全有效的


然而,如果你想让它成为一个单元测试,你应该做的是把支持机制模拟成某种内存结构,然后你的
StoreData
方法将插入到这个结构中,而不是调用数据库nd
SqlCommand
然后重载方法,以确保查询针对内存中的结构。

从技术上讲,这是一个集成测试,进行一个将从数据库中读取数据并确保其看起来正确的测试是完全有效的


然而,如果你想让它成为一个单元测试,你应该做的是把支持机制模拟成某种内存结构,然后你的
StoreData
方法将插入到这个结构中,而不是调用数据库nd
SqlCommand
然后重载方法,以确保查询针对内存中的结构。

我最初怀疑这是一个集成测试。我了解单元测试的模拟。对于集成测试,您是否了解如何从数据库读取数据(使用LINQ或其他方法)?谢谢你的回答。好吧,你可以使用你现有的任何已建立的加载机制。如果你在测试save,你就不是在测试加载。所以你可以测试save代码,然后用你的代码加载它,以获取元素并检查值。这给了我一个攻击计划。谢谢。什么对我们有效?假设我们想测试一个me方法,它按预期从数据库中通过ID检索客户。我们使用标准ADO.NET添加一条记录。然后执行该方法,通过ID检索特定记录,并从示例记录中传递ID。然后我们断言检索到的记录实际上是我们预期的记录。然后我们清理并使用ADO.NET删除测试记录ain来自数据库。集成测试项目有自己的配置文件和正确的连接字符串。这只是进行集成测试的多种方法之一。我最初怀疑这是一种集成测试。我了解单元测试的模拟。对于集成测试,您是否了解如何从数据库读取数据DB(使用LINQ或其他方式)?谢谢你的回答。好吧,你可以使用你现有的任何已建立的加载机制。如果你在测试save,你就不是在测试加载。所以你可以测试save代码,然后用你的代码加载它,以获取元素并检查值。这给了我一个攻击计划。谢谢。什么对我们有效?假设我们想测试一个me方法,它按预期从数据库中通过ID检索客户。我们使用标准ADO.NET添加一条记录。然后执行该方法,通过ID检索特定记录,并从示例记录中传递ID。然后我们断言检索到的记录实际上是我们预期的记录。然后我们清理并使用ADO.NET删除测试记录集成测试项目有自己的配置文件和正确的连接字符串。这只是进行集成测试的多种方法之一。