2

基本上,标题说明了一切:我正在使用 Resharper 测试运行程序(我的测试是使用 NUnit 编写的),现在我需要测试一些 T-SQL 代码。

我怎么做?

任何帮助(教程和公司的链接)将不胜感激。

我不知道的是:

  • 我把测试放在哪里?C#?T-SQL 也是如此?...?
  • 如何设置测试运行器来运行这些测试?
  • Resharper甚至可以做到这一点吗?
4

1 回答 1

-1

我已经为 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();
    }      
}
于 2013-03-10T19:39:37.933 回答