基本上,标题说明了一切:我正在使用 Resharper 测试运行程序(我的测试是使用 NUnit 编写的),现在我需要测试一些 T-SQL 代码。
我怎么做?
任何帮助(教程和公司的链接)将不胜感激。
我不知道的是:
- 我把测试放在哪里?C#?T-SQL 也是如此?...?
- 如何设置测试运行器来运行这些测试?
- Resharper甚至可以做到这一点吗?
基本上,标题说明了一切:我正在使用 Resharper 测试运行程序(我的测试是使用 NUnit 编写的),现在我需要测试一些 T-SQL 代码。
我怎么做?
任何帮助(教程和公司的链接)将不胜感激。
我不知道的是:
我已经为 T-SQL 编写了一些单元测试,用于测试 Sql 代码中的语法错误。在 NUnit 或 Microsoft 的单元测试框架中从 C# 执行测试并使用前面的语句运行:
SET FMTONLY ON;
在你只取回元数据之后,之后什么都没有真正执行,所以你甚至可以测试通常会修改数据的查询。
例如,请参阅下面的此 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();
}
}