SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
コンポーネントテストで
               開発効率を上げよう



                     SenchaUG 勉強会 第5回@東京
13年2月14日木曜日
自己紹介
     - 松岡 宏満(まつおか ひろみつ)


        - 株式会社W・I・Z


        - ExtJS/Sencha   Touchは趣味で3年、仕事で2年

        -@    ispern

        - http://www.ispern.com


13年2月14日木曜日
コンポーネントテスト(Component Test)とは?




13年2月14日木曜日
アプリケーション全体を読み込む場合

     - 全てのコンポーネントをロードするため、初期ロードが遅い


     - 初期表示で表示されないコンポーネントの確認に操作が必要




13年2月14日木曜日
コンポーネントテスト

     - コンポーネント単位に分割する


        - 必要なクラスのみのロードによる時間短縮


        - 確認したいコンポーネントをすぐ確認できる




13年2月14日木曜日
分割する                          Ext.Viewport

                                   Ext.Container



     - ビューポート


     - ヘッダコンテナー


     - メニューパネル
                  Ext.tree.Panel              Ext.grid.Panel


     - グリッドパネル




13年2月14日木曜日
実際にグリッドパネルのCTを作ってみる

       ソースコードは以下にあります

       https://github.com/ispern/extjs-component-test




13年2月14日木曜日
事前準備

     - ctフォルダを作成
       -   名前は任意です


     - ctフォルダ以下のフォルダにアクセス
       するために、index.htmlを作成




13年2月14日木曜日
Ext.applicationでグリッドパネルの起動処理
                   index.html   app.js




        chapter1
13年2月14日木曜日
Ext.applicationでグリッドパネルの起動処理




        chapter1
13年2月14日木曜日
コンポーネント間の依存度を低くする

       グリッドパネルのControllerクラスは
       ツリーパネルのイベントをリッスンし
       ているので、ツリーパネルがないとグ
       リッドパネルは動かない(依存度が高
       い)




        chapter2
13年2月14日木曜日
コンポーネント間の依存度を低くする

                                     Gridコントローラ




                   selectイベントをリッスン                ストアをロード




                      MyTreePanel                   MyGridPanel




        chapter2
13年2月14日木曜日
コンポーネント間の依存度を低くする


                              Mainコントローラ                       Gridコントローラ



                                             doLoadをfireEvent
                   selectイベンをリッスン                                       doLoadイベンをリッスン




                               MyTreePanel                     MyGridPanel




        chapter2
13年2月14日木曜日
コンポーネント間の依存度を低くする
              - view/MyGridPanel.js




        chapter2
13年2月14日木曜日
コンポーネント間の依存度を低くする
              - app.js




        chapter2
13年2月14日木曜日
コンポーネント間の依存度を低くする
              - controller/Main.js




        chapter2
13年2月14日木曜日
番外編

       コンポーネントテストで作ったMyGridPanelをJasmine+JsTestDriverを使
       ってユニットテストをやってみました。

       https://github.com/ispern/extjs-component-test




13年2月14日木曜日
事前準備

     - JsTestDriverのjarファイルと
       JasmineのSDKを配置
       -   配置場所は任意です。今回はtest/libフォルダに置い
           てます。




13年2月14日木曜日
事前準備

       JsTestDriverを実行してテスト対象のブラウザをキャプチャします




13年2月14日木曜日
JsTestDriverの設定ファイルを作成する

       今回はCTのMyGridPanelのみの設定ファイルです




13年2月14日木曜日
Specファイルを作成する




13年2月14日木曜日
テストを実行する




13年2月14日木曜日
まとめ

     - 必要なクラスのみのロードによる時間短縮


     - 確認したいコンポーネントをすぐ確認できる


     - 各テスティングフレームワークを利用したテストがしやすくなる


     - コンポーネント間の依存度を意識してコーディングができる




13年2月14日木曜日
ご静聴ありがとうございました




13年2月14日木曜日

Contenu connexe

Similaire à コンポーネントテストで開発効率を上げよう

『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2shinyaa31
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7Hiroshi Oyamada
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessaryHiroshi Maekawa
 
『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3shinyaa31
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidTaisuke Oe
 
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化Satoshi Akama
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Sea Mountain
 
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用yut148atgmaildotcom
 
深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待Seiya Tokui
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたSoichi Takamura
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報Midori Oge
 
夜子まま塾講義12(broadcast reciever)
夜子まま塾講義12(broadcast reciever)夜子まま塾講義12(broadcast reciever)
夜子まま塾講義12(broadcast reciever)Masafumi Terazono
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
Serviceability Toolsの裏側
Serviceability Toolsの裏側Serviceability Toolsの裏側
Serviceability Toolsの裏側Yasumasa Suenaga
 
Jpmobileを使ってみる
Jpmobileを使ってみるJpmobileを使ってみる
Jpmobileを使ってみるHiromu Shioya
 
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADPuppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADGosuke Miyashita
 
初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談Makoto Haruyama
 

Similaire à コンポーネントテストで開発効率を上げよう (20)

『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2『JUnit実践入門』写経・実践会 in 横浜 #2
『JUnit実践入門』写経・実践会 in 横浜 #2
 
20130412 titanium meetupvol7
20130412 titanium meetupvol720130412 titanium meetupvol7
20130412 titanium meetupvol7
 
GUI Test is (not) necessary
GUI Test is (not) necessaryGUI Test is (not) necessary
GUI Test is (not) necessary
 
『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3『JUnit実践入門』写経・実践会 in 横浜 #3
『JUnit実践入門』写経・実践会 in 横浜 #3
 
Scala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in AndroidScala2.10.x bytecode problems in Android
Scala2.10.x bytecode problems in Android
 
Jenkinsについて
JenkinsについてJenkinsについて
Jenkinsについて
 
JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化JenkinsとjMeterで負荷テストの自動化
JenkinsとjMeterで負荷テストの自動化
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
JUC2012
JUC2012JUC2012
JUC2012
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用配布用Supervisordによるnode.jsの運用
配布用Supervisordによるnode.jsの運用
 
深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待深層学習フレームワークChainerの紹介とFPGAへの期待
深層学習フレームワークChainerの紹介とFPGAへの期待
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
 
第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報第12回CloudStackユーザ会_ApacheCloudStack最新情報
第12回CloudStackユーザ会_ApacheCloudStack最新情報
 
夜子まま塾講義12(broadcast reciever)
夜子まま塾講義12(broadcast reciever)夜子まま塾講義12(broadcast reciever)
夜子まま塾講義12(broadcast reciever)
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
Serviceability Toolsの裏側
Serviceability Toolsの裏側Serviceability Toolsの裏側
Serviceability Toolsの裏側
 
Jpmobileを使ってみる
Jpmobileを使ってみるJpmobileを使ってみる
Jpmobileを使ってみる
 
Puppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPADPuppet Best Practices? at COOKPAD
Puppet Best Practices? at COOKPAD
 
初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談初心者エンジニアのシステム構築失敗談
初心者エンジニアのシステム構築失敗談
 

コンポーネントテストで開発効率を上げよう