Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
SQL Server 単体テストフレームワーク tSQLtの紹介。@KatsuYuzu lightning talk宜しくお願い致します。 #clrh78
自己紹介 Twitter:@KatsuYuzu Hatena:http://katsuyuzu.hatenablog.jp/ 仕事:札幌のSIerで3人体制の研究職チーム。    RIAやスマートフォンアプリなど。 開発:VB.NET...
tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン  ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので...
tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン  ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので...
tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン  ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので...
tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン  ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので...
メリット、デメリット メリット   DBファイルのコピーを行わず出来るので、テスト記述→テス    ト実行のサイクルを短く出来る。   MSTestとの連携も可能(ライブラリ作ってみた)     出力をXMLにカスタマイズ可能。    ...
メリット、デメリット メリット   DBファイルのコピーを行わず出来るので、テスト記述→テス    ト実行のサイクルを短く出来る。   MSTestとの連携も可能(ライブラリ作ってみた)     出力をXMLにカスタマイズ可能。    ...
まとめ tSQLt とは SQL Serverにおける単体テスト用のオープン  ソースフレームワーク。 ストアドプロシージャでテストコードを記述する。 テーブルの差し替え、比較も可能。 XML出力によってMSTestとも連携できる。 ...
Upcoming SlideShare
Loading in …5
×

SQL Server 単体テストフレームワーク tSQLt の紹介 #clrh78

1,513 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

SQL Server 単体テストフレームワーク tSQLt の紹介 #clrh78

  1. 1. SQL Server 単体テストフレームワーク tSQLtの紹介。@KatsuYuzu lightning talk宜しくお願い致します。 #clrh78
  2. 2. 自己紹介 Twitter:@KatsuYuzu Hatena:http://katsuyuzu.hatenablog.jp/ 仕事:札幌のSIerで3人体制の研究職チーム。  RIAやスマートフォンアプリなど。 開発:VB.NET、C#、Silverlight 趣味:  ゆず  ゆずが好きと言ってくれる人は多いけど、ゆずっ子は中々居ない。  ゲーム  ポケモン, ファイアーエムブレム, ヴァルキリープロファイル, FFCC  ウルティマオンライン  9年くらい?プレイ時間は概算でも1万時間を余裕で超えた。1万5 千も超えてそう。メンテタイムからメンテタイムまで1日20数時 間プレイしていたことも(白目
  3. 3. tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので、テスト データの投入もストアドでごりごり。ALTER PROCEDURE AcceleratorTests.[test ready for experimentation if 2 particles]ASBEGIN --Assemble: Fake the Particle table to make sure -- it is empty and has no constraints EXEC tSQLt.FakeTable Accelerator.Particle; INSERT INTO Accelerator.Particle (Id) VALUES (1); INSERT INTO Accelerator.Particle (Id) VALUES (2); DECLARE @Ready BIT; --Act: Call the IsExperimentReady function SELECT @Ready = Accelerator.IsExperimentReady(); --Assert: Check that 1 is returned from IsExperimentReady EXEC tSQLt.AssertEquals 1, @Ready;END;
  4. 4. tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので、テスト データの投入もストアドでごりごり。 結果はメッセージとして出力される。[AcceleratorTests].[test ready for experimentation if 2 particles] failed: Expected: <1> but was: <0>+----------------------+|Test Execution Summary|+----------------------+|No|Test Case Name |Result |+--+----------------------------------------------------------------------------------------------------------+-------+|1 |[AcceleratorTests].[test a particle is included only if it fits inside the boundaries of the rectangle] |Success||2 |[AcceleratorTests].[test a particle within the rectangle is returned with an Id, Point Location and Value]|Success||3 |[AcceleratorTests].[test a particle within the rectangle is returned] |Success||4 |[AcceleratorTests].[test email is not sent if we detected something other than higgs-boson] |Success||5 |[AcceleratorTests].[test email is sent if we detected a higgs-boson] |Success||6 |[AcceleratorTests].[test foreign key is not violated if Particle color is in Color table] |Success||7 |[AcceleratorTests].[test foreign key violated if Particle color is not in Color table] |Success||8 |[AcceleratorTests].[test no particles are in a rectangle when there are no particles in the table] |Success||9 |[AcceleratorTests].[test status message includes the number of particles] |Success||10|[AcceleratorTests].[test we are not ready for experimentation if there is only 1 particle] |Success||11|[AcceleratorTests].[test ready for experimentation if 2 particles] |Failure|-------------------------------------------------------------------------------Msg 50000, Level 16, State 10, Line 1Test Case Summary: 11 test case(s) executed, 10 succeeded, 1 failed, 0 errored.-------------------------------------------------------------------------------
  5. 5. tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので、テスト データの投入もストアドでごりごり。 結果はメッセージとして出力される。 テーブルの比較もできる。EXEC tSQLt.AssertEqualsTable expected, actual;failed: unexpected/missing resultset rows!|_m_|col1|col2|col3|+---+----+----+----+|< |2 |B |b ||< |3 |C |c ||= |1 |A |a ||> |3 |X |c |
  6. 6. tSQLtとは tSQLt とは SQL Serverにおける単体テスト用のオープン ソースフレームワーク。 実体はSQL CLR。 開発者はストアドプロシージャでテストコードを記述する。 テーブルの差し替えと戻しをサポートしてるので、テスト データの投入もストアドでごりごり。 結果はメッセージとして出力される。 テーブルの比較もできる。 ストアドの肯定派・否定派の存在は宗教戦争になるので今 は忘れましょう!
  7. 7. メリット、デメリット メリット  DBファイルのコピーを行わず出来るので、テスト記述→テス ト実行のサイクルを短く出来る。  MSTestとの連携も可能(ライブラリ作ってみた)  出力をXMLにカスタマイズ可能。  テストストアドを.NETから呼び出す。  パースしてLINQで処理って解析。  MSTestでアサート。  連携によって更に手軽。継続的インテグレーションにも使える。
  8. 8. メリット、デメリット メリット  DBファイルのコピーを行わず出来るので、テスト記述→テス ト実行のサイクルを短く出来る。  MSTestとの連携も可能(ライブラリ作ってみた)  出力をXMLにカスタマイズ可能。  テストストアドを.NETから呼び出す。  パースしてLINQで処理って解析。  MSTestでアサート。  連携によって更に手軽。継続的インテグレーションにも使える。 デメリット  SQL書きたくないよ?
  9. 9. まとめ tSQLt とは SQL Serverにおける単体テスト用のオープン ソースフレームワーク。 ストアドプロシージャでテストコードを記述する。 テーブルの差し替え、比較も可能。 XML出力によってMSTestとも連携できる。 Quick Start  http://tsqlt.org/user-guide/quick-start/  tSQLt自体がシンプルで、Webサイトのガイドもわかりやすい ので、SQL Serverの環境があれば10分程度で何となく色々わ かります。

×