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.
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,948 views

Published on

Published in: Technology
  • Login to see the comments

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. 以降も、  テスト実装→コード実装   を繰り返します

×