問題タブ [tsqlt]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql-server - tSQLt を使用して、GETUTCDATE() を使用するときにシステム クロックへの依存をどのように分離できますか?
GETUTCDATE() 関数を数回使用するストアド プロシージャがあります。これは非常に特殊な事業部門の sproc であるため、ここで表示することはあまり意味がありません。そうは言っても、sproc が呼び出されるのはその年だけであることを知っておくと役立つかもしれません。これは、私がやっていることの複雑さを示すものではありませんが、私が話していることを説明するのに役立つはずの不自然な例です:
私のテストは次のようになります。
いくつかのオプションがあります。
- 日付/時刻をパラメーターとして渡します (NULL の場合は値を GETUTCDATE() に設定します)。
- GETUTCDATE() への呼び出しを独自の関数に置き換えて、tSQLt を使用して偽造できる日付/時刻を返します
- ?
これらはどちらも、少し臭いと思われるテストにのみ必要なオプションのようです。プライマリ アプリケーションからの呼び出し方法に関して、この sproc をパラメーター化する必要はありません。
独自の依存関係を持つ SQL の組み込み関数との依存関係に関連するため、tSQLt テストでそれらの呼び出しを偽造する方法はありますか? tSQLt を使用してテストで指定した日付を返すために GETUTCDATE() への呼び出しを偽造するより良い方法はありますか、それともこれらが私の唯一のオプションですか?
sql-server - tsqlt と動的 SQL
次のような動的SQLを使用するsprocをテストしようとしています:
私が何をしても、テストに合格することはできません。私は使っている
基礎となるデータベースのデータを偽造します。tsqlt が動的 SQL で動作しないことは既知の事実ですか?
PS:
いくつかのコード:
sql-server - tSQLt Private_RunTest にも ROLLBACK ERROR がありました
ExpectException を使用するたびに、次のエラーが表示されます。
tSQLt は、MSSQL が RAISERROR のために ROLLBACK を既に実行したという事実の後で、ROLLBACK を試みているようです。次の SELECT および SET ステートメントを Private_RunTest で次の IF ステートメントでラップすると、問題が解決したように見えました。
これは本当にバグですか、それとも適切な修正ですか?
tsqlt - XML スキーマ コレクションを使用した Tsqlt
現在、XML スキーマ コレクションを参照する列を持つテーブル スキーマに取り組んでいます。単体テストでテーブルを偽造してテストを実行した後、「指定されたコレクションがメタデータに存在しません」というエラー メッセージが表示されました。
偽造する前に xml スキーマ コレクションを作成しようとしました。しかし、これでもエラーが発生します。
誰でもアイデアがあります。
前もって感謝します!
sql-server - 出力としてファイルを生成するストアド プロシージャをテストする tsqlt の方法
BCP を使用してファイルを作成するストアド プロシージャがあります。ファイル内のデータを、事前定義された予期される結果セットで検証する必要があります。TSQLT を使用してこれをテストする方法はありますか?
tsqlt - tSQLt - 列がストアド プロシージャによって出力されることをテストする
私はtSQLtに非常に慣れていないため、実際には非常に単純なテストであるべきものに苦労しています。
ストアド プロシージャ内で実行される SELECT ステートメントに列を追加しました。
そのストアド プロシージャの結果セットに列が含まれていることを tSQLt テストでテストするにはどうすればよいですか?
tsqlt - SpyProcedure はユーザー定義のテーブル タイプをサポートしていません
解決しました(願わくば!)
ストアド プロシージャでパラメーターとして使用されるユーザー定義のテーブル データ型があります。
スパイを行ったところ、次のようなエラーがスローされました: A column cannot be of a user-defined table type.[16,1]{,1}
サポートされていませんか?そうでない場合は、誰かがどのようにそれを行ったかに興味があります-つまり、私の場合と同様のストアドプロシージャをスパイします。
私のdbサーバーはSQL2008 R2です。
以下は、それを複製するためのサンプル コードです。
以下のハッキングされたコード。 変更点をマークしました。目標は、テーブル値パラメーターの値を XML としてクエリすることでした。注: コードはまだ十分にテストされていません。
.net - tSQLt - ユーザー定義ルーチンまたは集約「プライベート」の実行中に .NET Framework エラーが発生しました
tSQLt を使用してテスト プロシージャを呼び出そうとしています。テストは成功しますが、次のエラー メッセージが表示されます。
ユーザー定義ルーチンまたは集合体 'Private' の実行中に .NET Framework エラーが発生しました
データベースは既に TRUSTWORTHY ON に設定されており、CLR が有効になっています (sp_configure 'clr enabled', 1;)
この問題を解決するアイデアはありますか? 前もって感謝します