Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Pub/Subメッセージングのテスト(LT版)

 Pub/Subメッセージングのテスト(LT版)

TakashiAsanuma

March 02, 2018
Tweet

More Decks by TakashiAsanuma

Other Decks in Programming

Transcript

  1. IDC Frontier Inc. All rights reserved.
    表参道.rb #32
    Pub/Subメッセージングのテスト
    株式会社IDCフロンティア
    技術開発本部 UX開発部 浅沼 敬
    2018年03⽉1⽇

    View full-size slide

  2. 2
    IDC Frontier Inc. All rights reserved.
    ⾃⼰紹介
    # LIFULL
    - HOMEʼS 開発リーダー
    - HOMEʼS 流通ユニット⻑
    - HOMEʼS インフラ担当
    # ZIGExN
    - アルバイトEX 開発担当
    - 全社インフラ担当
    - ベトナム⼦会社 PM
    # IDCフロンティア(現在)
    - IDCFクラウドのバックエンド開発
    Twitter: @rmaccho
    Speaker Deck: TakashiAsanuma
    Github: TakashiAsanuma

    View full-size slide

  3. 3
    IDC Frontier Inc. All rights reserved.
    IDCFクラウドのサービス

    View full-size slide

  4. 4
    IDC Frontier Inc. All rights reserved.
    IDCFクラウドのPub/Sub
    UI API MQ
    Ctrl
    Worker
    DB
    Cloud
    Stack
    MQを介して、JSONのメッセージ
    をPub/Subしています

    View full-size slide

  5. 5
    IDC Frontier Inc. All rights reserved.
    テスト戦略
    UI
    システムテスト
    各コンポーネント別
    振る舞いテスト
    Unit Test

    View full-size slide

  6. 6
    IDC Frontier Inc. All rights reserved.
    振る舞いテスト(Ctrl)
    Before:
    Message
    Publish
    MQ
    Ctrl
    Result
    Message
    Message
    Templates
    Expect
    Message
    Expect
    Diff

    View full-size slide

  7. 7
    IDC Frontier Inc. All rights reserved.
    テストコード配置
    Spec/
    behavior/ #ジョブごとの振る舞いテスト
    shared_examples/ #共有コードの集まり
    support/ #MQ, JSON関連処理のHelper
    Message_templates/
    templates/ #ジョブごとのメッセージテンプレート
    message_helper/
    builder/ #ジョブごとのメッセージを⽣成

    View full-size slide

  8. 8
    IDC Frontier Inc. All rights reserved.
    良いところ・つらいところ
    良いところ
    - 振る舞い配下の処理に⼿を⼊れやすい
    - メッセージを定義してBDD的に進めやすい
    つらいところ
    - JSON関連の独⾃Utilが・・・
    - メッセージをログから取得したりするパースが・・・
    - 関連ミドルウェア等が多いと、そのモック⽤意が・・・

    View full-size slide

  9. 9
    IDC Frontier Inc. All rights reserved.
    以上です。
    ありがとうございました。

    View full-size slide