这可能是一个非常简单的面向对象编程问题。我想要做的是取两个空对象,使用查询从数据库中提取数据,用查询返回的数据填充空对象,然后对它们进行断言。请参见下面的代码:不能断言对象
object test1;
object test2;
using (SqlConnection dbconnection = new SqlConnection(expconnstr))
{
dbconnection.Open();
var expcommand = new SqlCommand(expectedquery, dbconnection);
var actcommand = new SqlCommand(actualquery, dbconnection);
using (SqlDataReader expreader = expcommand.ExecuteReader())
{
if (expreader.Read())
{
test1 = expreader.GetValue(0);
expreader.Close();
}
}
using (SqlDataReader actreader = actcommand.ExecuteReader())
{
if (actreader.Read())
{
test2 = actreader.GetValue(0);
actreader.Close();
}
}
}
Assert.AreSame(test1, test2);
我在VB写一个非常类似的测试方法遵循相同的模式和执行就好了VB代码。然而,从VB转换到C#时,我遇到了这些问题。编译器在assert中说“使用未分配的变量”。但是,我认为我在上面的代码块中分配了一个值。我究竟做错了什么?
请原谅这被假定为有值的变量(actreader,expcommand ,dbconnection等)。他们被认为具有价值并且工作良好。这是主张失败。 – Brian