基本上,标题说明了一切:我正在使用Resharper测试运行器(我的测试是使用NUnit编写的),现在我需要测试一些T-SQL代码。
我该怎么做?
任何帮助(链接到教程和公司)都将不胜感激。
我不知道的是:
答案 0 :(得分:-1)
我为T-SQL编写了一些单元测试,用于测试Sql代码中的语法错误。测试在NUnit或Microsofts Unit测试框架中从C#执行,并使用前面的语句运行:
SET FMTONLY ON;
Microsoft reference of this statement.
在您仅返回元数据后,在此之后没有真正执行任何内容,因此您甚至可以测试通常会修改数据的查询。
例如,请参阅下面的NUnit测试,如果过程存在并且在其自身或任何存储过程依赖项中没有语法错误,则会成功。
[Test]
public void GivenStoredProcedure_WhenParsedBySqlServer_ThenItsResultShouldBeZero()
{
const string sqlText = "SET FMTONLY ON; EXEC dbo.MyStoreProc;";
var sqlConnection = new SqlConnection(connectionString);
var sqlCommand = new SqlCommand(sqlText, sqlConnection);
sqlCommand.CommandType = CommandType.Text;
try
{
sqlConnection.Open();
var result = sqlCommand.ExecuteNonQuery();
Assert.That(result, Is.EqualTo(0));
}
finally
{
if (sqlConnection.State == ConnectionState.Open)
{
sqlConnection.Close();
}
sqlConnection.Dispose();
}
}