2

基本的には、タイトルがすべてを物語っています。私は Resharper テスト ランナーを使用しています (私のテストは NUnit を使用して記述されています)。そして、いくつかの T-SQL コードをテストする必要があります。

それ、どうやったら出来るの?

ヘルプ(チュートリアルなどへのリンク)をいただければ幸いです。

私が知らないことは次のとおりです。

  • テストはどこに置くのですか?C#? T-SQLも?...?
  • これらのテストを実行するためにテスト ランナーをセットアップするにはどうすればよいですか?
  • これはResharperでも可能ですか?
4

1 に答える 1

-1

Sql コードの構文エラーをテストする T-SQL の単体テストをいくつか作成しました。NUnit または Microsoft ユニット テスト フレームワークで C# からテストが実行され、前のステートメントで実行されます。

SET FMTONLY ON;

このステートメントの Microsoft 参照。

メタデータを取得した後は、実際には何も実行されないため、通常はデータを変更するクエリをテストすることもできます。

たとえば、以下の 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 に答える