2010-01-03 95 views
0

伙计们,我是新编写测试用例的方法。在这里,我有一个使用NUnit测试框架编写测试用例的InsertMethod。帮我写下如下方法的测试用例:使用NUnit的测试用例

public bool insertUser(String FirstName,String LastName) { bool result = false;

SqlConnection myconn = new SqlConnection(); 
    SqlCommand mycmd = new SqlCommand(); 

    try 
    { 
     myconn.ConnectionString = "Data Source=BABU-PC;Initial Catalog=contacts;Integrated Security=True"; 

     myconn.Open(); 

     mycmd.Connection = myconn; 
     mycmd.CommandText = "InsertUser"; 
     mycmd.CommandType = CommandType.StoredProcedure; 


     SqlParameter param1 = new SqlParameter(); 
     param1.ParameterName = "@FirstName"; 
     param1.DbType = DbType.AnsiString; 
     param1.Size = 8000; 
     param1.Value = FirstName; 
     mycmd.Parameters.Add(param1); 


     SqlParameter param2 = new SqlParameter(); 
     param2.ParameterName = "@LastName"; 
     param2.DbType = DbType.AnsiString; 
     param2.Size = 8000; 
     param2.Value = LastName; 
     mycmd.Parameters.Add(param2); 

     int i = 0; 

     i = mycmd.ExecuteNonQuery(); 

     if (i > 0) 
     { 
      result = true; 
     } 
     else 
     { 
      result = false; 
     } 


    } 

    catch (Exception err) 
    { 
     Console.WriteLine(err.Message.ToString()); 

     return false; 
    } 

    finally 
    { 
     mycmd.Dispose(); 
     myconn.Close(); 
     myconn = null; 

    } 
    return result; 
} 

感谢

SBM

+1

所以你想让我们为你写代码? – 2010-01-03 05:52:33

+4

你正在考虑这个错误的方式。不要考虑你现有的代码。想想你想测试什么。那么你想测试什么? – Cellfish 2010-01-03 06:33:27

+1

单元测试对数据库相关任务来说不是很好。 – 2010-01-03 08:49:53

回答

1

Cellfish是正确的。不要考虑代码,想想方法应该做什么。看也不看你的代码,我会做测试的这种:

制备1-

lastName = "LastName" 
firstName = "FirstName" 

然后尝试获取与firstName和lastName用户,并确保它不是已经存在。

2-执行

InsertUser(firstName, lastName) 

3-请检查

  • 确保InsertUser返回true
  • 尝试获取与firstName和lastName用户,并确保它的存在与正确的值。
+0

这测试了'真正'的返回路径。要测试'错误'路径,请尝试插入已经在数据库中的用户。 – Pedro 2010-01-14 15:38:45

+0

你是对的!感谢精确度 – 2010-01-14 16:23:32