我正在尝试更多地了解单元测试,使用开箱即用的功能(我相信它是 MSTest.exe)和 Microsoft Fakes(存根和垫片)。
我正在使用 Visual Studio 2012 Ultimate 和 .Net 4.5 Framework。
给定以下代码,该代码调用返回单个输出值的存储过程 (SQL Server)(为简单起见):
public string GetSomeDatabaseValue()
{
string someValue = String.Empty;
SqlParameter paramater = new SqlParameter();
paramater.ParameterName = "@SomeParameter";
paramater.Direction = ParameterDirection.Output;
paramater.SqlDbType = SqlDbType.NVarChar;
paramater.Size = 50;
try
{
using(SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["connection"].ConnectionString))
{
using (SqlCommand command = new SqlCommand())
{
command.Connection = connection;
command.CommandType = System.Data.CommandType.StoredProcedure;
command.CommandText = "SomeStoredProcedure";
command.Parameters.Add(paramater);
connection.Open();
command.ExecuteNonQuery();
if (command.Parameters["@SomeParameter"] != null)
{
someValue= Convert.ToString(command.Parameters["@SomeParameter"].Value);
}
}
}
}
catch(SqlException)
{
throw;
}
return someValue;
}
- 是否可以使用垫片和/或存根对其进行测试,以便将输出值设置为特定值?
- 如果有怎么办?
- 我什至应该为此使用单元测试吗?
我已按照本教程进行操作,并设法理解并使其适应星期几。
正如一位 MS 员工所说,我正在等待VS2012数据库单元测试功能在 2012 年底可用(或恢复),以便可以单独测试数据库。