web-dev-qa-db-ja.com

SQLユニットテストはそれほど長くなるはずですか?

私はいくつかの独立したビジネスロジックでストアドプロシージャを書いています。私はそれらをテストしようとしていますが、実際のテストは非常に長い(40~50のLocから始まり、一般的に4つの異なるテーブルを使用して短いもの)になります。 (確かに、コードを多くのスペースがかかるようにフォーマットします。)

「通常の」プログラミング言語の文脈において、私は複雑な手順をより小さなチャンクにリファクタリングするためのアドバイスを聞いた。しかし、私はここでそれをしたくありません。

  1. 私は小さなルーチンによって「グローバルネームスペース」を汚染したくありません。
  2. テーブルを通過してストアドプロシージャに渡すことは面倒です。
  3. カスタム関数はパフォーマンスに悪影響を及ぼす可能性があります。

私はこの推論について間違っていますか?私はユニットテストに新しいので、おそらく私のテストを間違っているだけですか? SQL Longwinded Languageであり、それは単体テストも同様に長いですか?


(私はTSQLTフレームワークを使ってSQL Serverを使用していますが、私は質問がシステム - Agnosticであると思います。)

2
IvanLoginov

ユニットテストは簡単なことではありません。アプリケーションがメンテナンスが必要な場合は、エンドユーザーに引き渡される前に、ほとんどのエラーを除外することで製品の品質に役立ちます。自動テスト、およびTOUTコートのテストの利点は、非常に頻繁に無視されます。

「通常の「通常の」プログラミング言語の文脈において、私は複雑な手順を小さな塊にリファクタリングするためのアドバイスを聞いた。」このアドバイスはプログラミングとほぼ同じです。あなたがそれをフォローしないならば、あなたはあなたの好みのプログラミング言語を使って足であなた自身を撃つことができます シュートセルフイン 。しかし、そして私は引用:「あなたはSQLでfoot_shootingをすることはできません」

1
Gerard H. Pille