TDD	  for	  C++	  実演
環境	•  Visual	  Studio	  2010	      –  コンソールアプリケーションプロジェクトを作ります	  •  Google	  Test	  1.6	      –  すぐに使えるバイナリを用意しました	       ...
実演
テスティングフレームワークのテスト
 EXPECT_EQが失敗することを確認する	#include	 <gtest/gtest.h>	 	 TEST(	 TestSample,	 add	 )	 {	 	 	 	 	 EXPECT_EQ(	 0...
テスティングフレームワークのテスト
 EXPECT_EQが成功することを確認する	#include	 <gtest/gtest.h>	 	 TEST(	 TestSample,	 add	 )	 {	 	 	 	 	 EXPECT_EQ(	 0...
テストを作成する
 実装がないので、ビルドでエラーになる	#include	 <gtest/gtest.h>	 	 TEST(	 TestSample,	 add	 )	 {	 	 	 	 	 EXPECT_EQ(	 3,	 add(	 1,	...
テスト対象を実装する
                 テストは失敗する	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	 	 return	 ...
テストが通る最低限の実装をする	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	 	 return	 3;	 }	 	 TEST(	 TestS...
新しいテストを書く
                    テストは失敗する	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	 	 return...
テストが通る最低限の実装をする	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	 	 if	 (	 (val1	 ==	 1)	 &&	 (va...
新しいテストを書く
                             テストは失敗する	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	...
テストが通る最低限の実装をする	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	 	 if	 (	 (val1	 ==	 1)	 &&	 (va...
リファクタリングする	#include	 <gtest/gtest.h>	 	 int	 add(	 int	 val1,	 int	 val2	 )	 {	 	 	 	 	 return	 val1	 +	 val2;	 }	 	 TEST(...
以降も、	  テスト実装→コード実装	    を繰り返します
Upcoming SlideShare
Loading in …5
×

tdd4cpp demo

2,803 views

Published on

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

No Downloads
Views
Total views
2,803
On SlideShare
0
From Embeds
0
Number of Embeds
981
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

tdd4cpp demo

  1. 1. TDD  for  C++  実演
  2. 2. 環境 •  Visual  Studio  2010   –  コンソールアプリケーションプロジェクトを作ります  •  Google  Test  1.6   –  すぐに使えるバイナリを用意しました   •  h6ps://bitbucket.org/kaorun55/ google_test_and_mock   •  C: に展開してください   •  同梱の「gtest_gmock.props」にパスの設定などを入れ たので、VSに読み込ませるとすぐにテストが書けます   –  実際のコミットログはこちらです   •  h6ps://github.com/kaorun55/tddbc/commits/tdd4cpp  
  3. 3. 実演
  4. 4. テスティングフレームワークのテスト
 EXPECT_EQが失敗することを確認する #include <gtest/gtest.h> TEST( TestSample, add ) { EXPECT_EQ( 0, 1 ); }
  5. 5. テスティングフレームワークのテスト
 EXPECT_EQが成功することを確認する #include <gtest/gtest.h> TEST( TestSample, add ) { EXPECT_EQ( 0, 0 ); }
  6. 6. テストを作成する
 実装がないので、ビルドでエラーになる #include <gtest/gtest.h> TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); }
  7. 7. テスト対象を実装する
 テストは失敗する #include <gtest/gtest.h> int add( int val1, int val2 ) { return 0; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); }
  8. 8. テストが通る最低限の実装をする #include <gtest/gtest.h> int add( int val1, int val2 ) { return 3; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); }
  9. 9. 新しいテストを書く
 テストは失敗する #include <gtest/gtest.h> int add( int val1, int val2 ) { return 3; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); EXPECT_EQ( 7, add( 3, 4 ) ); }
  10. 10. テストが通る最低限の実装をする #include <gtest/gtest.h> int add( int val1, int val2 ) { if ( (val1 == 1) && (val2 == 2) ) { return 3; } return 7; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); EXPECT_EQ( 7, add( 3, 4 ) ); }
  11. 11. 新しいテストを書く
 テストは失敗する #include <gtest/gtest.h> int add( int val1, int val2 ) { if ( (val1 == 1) && (val2 == 2) ) { return 3; } return 7; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); EXPECT_EQ( 7, add( 3, 4 ) ); EXPECT_EQ( 11, add( 5, 6 ) ); }
  12. 12. テストが通る最低限の実装をする #include <gtest/gtest.h> int add( int val1, int val2 ) { if ( (val1 == 1) && (val2 == 2) ) { return 3; } else if ( (val1 == 3) && (val2 == 4) ) { return 7; } return 11; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); EXPECT_EQ( 7, add( 3, 4 ) ); EXPECT_EQ( 11, add( 5, 6 ) ); }
  13. 13. リファクタリングする #include <gtest/gtest.h> int add( int val1, int val2 ) { return val1 + val2; } TEST( TestSample, add ) { EXPECT_EQ( 3, add( 1, 2 ) ); EXPECT_EQ( 7, add( 3, 4 ) ); EXPECT_EQ( 11, add( 5, 6 ) ); }
  14. 14. 以降も、  テスト実装→コード実装   を繰り返します

×