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,188 views
1,040 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,188
On SlideShare
0
From Embeds
0
Number of Embeds
168
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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分程度で何となく色々わ かります。

×